3

gviz_api.DataTableにキャストしたいpandas.DataFrameオブジェクトがあり、これをGoogleチャートで使用します。

これを行う簡単な方法はありますか?

4

2 に答える 2

0

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>)])]
于 2012-11-29T22:50:07.943 に答える
0

iterrows とリストを使用する代わりに、.values を使用してデータフレームを numpy オブジェクト (配列の配列 - 各行に 1 つ) として取得できます。

プロセスを終了し、これを 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()
于 2017-04-04T16:27:04.410 に答える