2015-02-23 101 views
2

我正在使用熊貓數據框。如何將熊貓數據框轉換爲.tde文件?

我已經加載了所有的數據以及所有我想要執行的操作。

我正在尋找可以將此數據幀並將行復制到我已經定義爲.tde提取的一部分的表中的特定行代碼。

如果有人有這方面的經驗,我很樂意看到你寫的東西。有一些示例可以在線使用.csvreader和python循環訪問行並在讀取它們時添加它們,但是我找不到任何示例說明如何將數據存儲在數據框中並將其應用於定義爲部分的表的提取物。

編輯:所以此刻我試圖通過逐行循環,並添加每個特定的單元格。出於某種原因,我得到這個錯誤。

colnames = all_data.columns 

for r in range(0, len(all_data)): 
newrow = tde.Row(tableDef) 
for c in range(0, len(colnames)): 
    if str(colnames[c]) == 'Run Date': 
     newrow.setCharString(c, all_data.iloc[r,c]) 
    elif str(colnames[c]) == 'Sales Order': 
     newrow.setCharString(c, all_data.iloc[r,c]) 
    else: 
     newrow.setNull(c) 

table.insert(newrow) 

TypeError         Traceback (most recent call last) 
<ipython-input-27-db8a798ec66b> in <module>() 
     5    newrow.setCharString(c, all_data.iloc[r,c]) 
     6   elif str(colnames[c]) == 'Sales Order': 
----> 7    newrow.setCharString(c, all_data.iloc[r,c]) 
     8   else: 
     9    newrow.setNull(c) 

    C:\Anaconda\lib\site-packages\dataextract\Base.pyc in setCharString(self, columnNumber, value) 
    335    self._handle 
    336   , c_int(columnNumber) 
--> 337   , c_char_p(value) 
    338  ) 
    339 

TypeError: string or integer address expected instead of numpy.int64 instance 

回答

2

的Tableau提供用於創建數據提取(TDE)文件的API - DETAILSDOWNLOAD

使用Python驅動程序的API,你可以輕鬆地將一個數據幀。

見,例如,this post在如何將您的數據轉換成基於你回溯的TDE格式

+0

我已閱讀所有文檔我只是不知道如何應用它。在python中沒有明確的指令將數據從數據框移動到虛擬表中,我知道這對於使用不同類型目標表的其他人來說是個問題(https://github.com/biolab/orange3/issues/68 )。當我嘗試按照教程所示的方式將數據框插入表中時,將返回一個錯誤:「dataframe not callable」 – 2015-02-24 16:19:16

+1

請編輯您的問題,以包含您正在嘗試的代碼示例以及任何錯誤的追溯。謝謝! – philshem 2015-02-25 19:46:22

0

,問題是,你試圖插入,而不是一個「正規」的整數numpy.int64。

例如,要轉換爲常規整數插入之前,使用INT()函數:

int(numpyint) 

其他數據類型也需要被轉換,所以使用STR(),unicode的()或float()函數。

source

相關問題