2015-02-23 87 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

相关问题