如何将pandas.DataFrame强制转换为gviz_api.DataTable

如何将pandas.DataFrame强制转换为gviz_api.DataTable,api,pandas,google-visualization,Api,Pandas,Google Visualization,我有一个pandas.DataFrame对象,我想将它转换成gviz_api.DataTable,然后在我的谷歌图表中使用它 有没有一种简单的方法可以做到这一点?我不知道有什么简单的方法可以将pandas数据帧转换到gviz数据表中 我是这样做的:- from gviz_data_table import Table # using https://bitbucket.org/charlie_x/gviz-data-table though you should probably use t

我有一个pandas.DataFrame对象,我想将它转换成gviz_api.DataTable,然后在我的谷歌图表中使用它


有没有一种简单的方法可以做到这一点?

我不知道有什么简单的方法可以将pandas数据帧转换到gviz数据表中

我是这样做的:-

from gviz_data_table import Table   # using https://bitbucket.org/charlie_x/gviz-data-table though you should probably use the official google one.
import numpy as np
import pandas as pd

df = pd.DataFrame({
    "time" : [1,2,3,4,5],
    "temp" : np.random.rand(5)
})

table = Table()
table.add_column('temp', float, 'Temp')
table.add_column('time', float, 'Time')

for row in df.iterrows():
    table.append(row[1].tolist())

table.rows

[OrderedDict([('temp', <gviz_data_table.cell.Cell object at 0x104a64aa0>), ('time', <gviz_data_table.cell.Cell object at 0x104a64a50>)]),
 OrderedDict([('temp', <gviz_data_table.cell.Cell object at 0x104a64af0>), ('time', <gviz_data_table.cell.Cell object at 0x104a64b40>)]),
 OrderedDict([('temp', <gviz_data_table.cell.Cell object at 0x104a64b90>), ('time', <gviz_data_table.cell.Cell object at 0x104a64be0>)]),
 OrderedDict([('temp', <gviz_data_table.cell.Cell object at 0x104a64c30>), ('time', <gviz_data_table.cell.Cell object at 0x104a64c80>)]),
 OrderedDict([('temp', <gviz_data_table.cell.Cell object at 0x104a64cd0>), ('time', <gviz_data_table.cell.Cell object at 0x104a64d20>)])]
来自gviz_数据_表导入表#使用https://bitbucket.org/charlie_x/gviz-data-table 虽然你可能应该使用谷歌官方的。
将numpy作为np导入
作为pd进口熊猫
df=pd.DataFrame({
“时间”:[1,2,3,4,5],
“温度”:np.随机兰特(5)
})
表=表()
表.添加_列('temp',float',temp')
表.添加_列('time',float',time')
对于df.iterrows()中的行:
table.append(行[1].tolist())
表1.2行
[OrderedDict([('temp',),('time',)]),
订单信息([('temp',),('time',)]),
订单信息([('temp',),('time',)]),
订单信息([('temp',),('time',)]),
订单信息([('temp',),('time',)])]

作为使用iterrows和列表的替代方法,您可以使用.values将数据帧作为numpy对象(一个数组数组-每行一个)

完成该过程并将其转换为GViz表

  • 设置描述
  • 使用gviz_api的LoadData()方法加载值
代码示例

#set up Google Table w/ the description
gpa_desc=[("grade_date", "date", "Date" ),
          ("gpa", "number", "GPA")]
gpa_data_table=gviz_api.DataTable(gpa_desc)

#your df as a numpy object
gpa_values=df_gpa.values

#populate the table with your data 
gpa_data_table.LoadData(gpa_values)

#convert to json to pass to the view
gpa_json=gpa_data_table.ToJSon()