所以,我必须创建一个数据帧。我不介意我的来源是一个词典或词典列表。
List of Dict:
[{'A': 'First', 'C': 300, 'B': 200},
{'A': 'Second', 'C': 310, 'B': 210},
{'A': 'Third', 'C': 330, 'B': 230},
{'A': 'Fourth', 'C': 340, 'B': 240},
{'A': 'Fifth', 'C': 350, 'B': 250}]
OR
{'First': {'C': 300, 'B': 200},
'Second':{'C': 310, 'B': 210} },
'Third': {'C': 330, 'B': 230},
'Fourth': {'C': 340, 'B': 240},
'Fifth': {'C': 350, 'B': 250} }
我希望我的数据框像这样
C B
First 300 200
Second 310 210
Third 330 230
Fourth 340 240
Fifth 350 250
基本上,建议其中一列成为索引...
答案 0 :(得分:3)
您也可以使用pd.DataFrame.from_records()
将特定列设置为索引:
pd.DataFrame.from_records([{'A': 'First', 'C': 300, 'B': 200},
{'A': 'Second', 'C': 310, 'B': 210},
{'A': 'Third', 'C': 330, 'B': 230},
{'A': 'Fourth', 'C': 340, 'B': 240},
{'A': 'Fifth', 'C': 350, 'B': 250}], index = ['A'])
答案 1 :(得分:2)
使用您的第一个数据集,这是一种方式:
In [15]: df=pd.DataFrame(l, index=[d['A'] for d in l])
In [16]: del df['A']
In [17]: df
Out[17]:
B C
First 200 300
Second 210 310
Third 230 330
Fourth 240 340
Fifth 250 350
[5 rows x 2 columns]
从第二个数据集中,这是另一种方式。请注意,由于字典中键的顺序是任意的,因此DataFrame中的行顺序也是任意的。
In [27]: pd.DataFrame(data=l2.values(), index=l2.keys())
Out[27]:
B C
Fifth 250 350
Second 210 310
Fourth 240 340
Third 230 330
First 200 300
[5 rows x 2 columns]
答案 2 :(得分:2)
Dict列表:
l = [{'A': 'First', 'C': 300, 'B': 200},
{'A': 'Second', 'C': 310, 'B': 210},
{'A': 'Third', 'C': 330, 'B': 230},
{'A': 'Fourth', 'C': 340, 'B': 240},
{'A': 'Fifth', 'C': 350, 'B': 250}]
df = pd.DataFrame.from_records(l).set_index('A')
字典:
d = {'First': {'C': 300, 'B': 200},
'Second':{'C': 310, 'B': 210},
'Third': {'C': 330, 'B': 230},
'Fourth': {'C': 340, 'B': 240},
'Fifth': {'C': 350, 'B': 250} }
df = pd.DataFrame.from_dict(d, orient='index')