如何将Pandas数据帧传输到.tde?

2024-09-28 05:27:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用熊猫数据帧。在

我已经加载了我所有的数据和所有我想执行的操作,完成了。在

我正在寻找特定的代码行,这些代码可以获取这个数据帧并将行复制到我定义为.tde提取的一部分的表中。在

如果有人有这方面的经验,我很想看看你写了什么。网上有一些例子可以在python中使用.csvreader,它可以循环遍历行并在读取行时将其添加,但我找不到任何示例来说明如何获取存储在数据帧中的数据并将其应用于定义为提取的一部分的表。在

编辑:所以目前我正试图遍历每一列,逐行并添加每个特定的单元格。因为某种原因我被抛出这个错误。在

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

Tags: 数据代码infordatalen定义range
2条回答

根据您的回溯,问题是您试图插入数字.int64而不是一个“常规”整数。在

例如,要在插入前转换为常规整数,请使用int()函数:

int(numpyint)

其他数据类型也需要转换,所以使用str()、unicode()或float()函数。在

source

Tableau提供了一个用于创建数据提取(TDE)文件的API-DETAILSDOWNLOAD

使用API的Python驱动程序,可以轻松地转换数据帧。在

例如,请参阅如何将数据转换为TDE格式中的this post

相关问题 更多 >

    热门问题