将pandas数据帧转换为字典并添加公共键值对

时间:2017-03-25 23:46:33

标签: python pandas dictionary

我有这个人。 pandas dataframe(以datetime作为索引):

            name_col
datetime          
2016-11-01    0.00
2016-11-08    0.00

如何将其转换为如下所示的字典:

[{field_id='1', date='2016-11-01', name_col=0.0}, {field_id='1', date='2016-11-08', name_col=0.0}]

在这里,我想为字典中的每个项目添加一个公共键值对(field_id =' 1')

我试过了:

df.to_dict()

但这并没有帮助我添加公共键值对(field_id =' 1')并且也没有提供我想要的格式

2 个答案:

答案 0 :(得分:3)

一种可能的方法是添加一个列,然后转换为dict,如:

In [1]: import pandas as pd

In [2]: data = [["2016-11-01",0.00], ["2016-11-08",0.00]]

In [3]: df = pd.DataFrame(data, columns=["datetime", "name_col"])

In [4]: df["field_id"] = 1

In [5]: df
Out[5]:
     datetime  name_col  field_id
0  2016-11-01       0.0         1
1  2016-11-08       0.0         1

In [6]: df.to_dict(orient="record")
Out[6]:
[{'datetime': '2016-11-01', 'field_id': 1, 'name_col': 0.0},
 {'datetime': '2016-11-08', 'field_id': 1, 'name_col': 0.0}]

答案 1 :(得分:1)

使用assign清除语法

df.assign(field_id=1).reset_index().to_dict('records')

[{'datetime': '2016-11-01', 'field_id': 1, 'name_col': 0.0},
 {'datetime': '2016-11-08', 'field_id': 1, 'name_col': 0.0}]