使用First Col作为键,使用Second作为值的Json的DataFrame

时间:2018-06-11 09:27:07

标签: python json mongodb pandas dataframe

我有一个如下所示的数据框:

k = pd.DataFrame({'A':[1,2,3,4], 'B':['a','b','c','d']})

我想插入一个看起来像这样的mongoDB:

dic = {1:'a', 2:'b',3:'c',4:'d'}

我怎么能这样做?

我已经检查了这样的事情,但它们似乎不适用于我的df:

convert pandas dataframe to json object - pandas

提前致谢!

2 个答案:

答案 0 :(得分:2)

使用Series.to_json并在必要时更改key值添加rename

print (k.set_index('A').rename(columns={'B':'index1'}).to_json())
{"index1":{"1":"a","2":"b","3":"c","4":"d"}}

如果需要导出到文件:

k.set_index('A').rename(columns={'B':'index1'}).to_json('file.json')

答案 1 :(得分:0)

尽管我所写的内容并不是对所提问题的答案,但我仍在提供解决方案,以解决我所遇到的一个小问题,我在Google上搜索并到达此处。

问题:如何从熊猫数据框中创建字典,以列为键,并以常量值(在我的情况下为1)作为值,

解决方案:

f = pd.Series(data = [1]*df.shape[0],index=df['col_name'])
x = f.to_json(orient='columns')

输出:

{"one":1, "two":1, "three": 1}

我为什么要这样做? 因为字典中的搜索是高度优化的(是的,我也可以使用set)

P.S。 Python的新手,请对我温柔:)。