【问题标题】:How to get a pandas dataframe to a .tde?如何将熊猫数据框获取到 .tde?
【发布时间】:2015-02-23 22:56:11
【问题描述】:

我正在使用 Pandas 数据框。

我已经加载了我的所有数据和我想要执行的所有操作。

我正在寻找可以获取此数据帧并将行复制到我已定义为 .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

【问题讨论】:

    标签: python pandas extract tableau-api


    【解决方案1】:

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

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

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

    【讨论】:

    • 我已经阅读了所有文档,只是不确定如何应用它。没有关于将数据从数据帧移动到 python 中的虚拟表的明确说明,我知道这对于使用不同类型目标表的其他人来说是一个问题 (github.com/biolab/orange3/issues/68)。当我尝试按照教程中所示将数据框插入表时,返回错误:“数据框不可调用”
    • 请编辑您的问题以包含您正在尝试的代码示例以及任何错误的回溯。谢谢!
    【解决方案2】:

    根据您的回溯,问题在于您尝试插入 numpy.int64 而不是“常规”整数。

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

    int(numpyint)
    

    其他数据类型也需要转换,因此请使用 str()、unicode() 或 float() 函数。

    source

    【讨论】:

      猜你喜欢
      • 2018-02-28
      • 2016-10-02
      • 2019-01-03
      • 1970-01-01
      • 2020-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-11
      相关资源
      最近更新 更多