我有这本词典:
d = {'val_1': [1,2,3,4,5], 'val_2': 4}
我想从这里创建一个只有一行的pandas DataFrame。
当我这样做时:
import pandas as pd
df = pd.DataFrame(d)
print(df)
我得到5行:
val_1 val_2
0 1 4
1 2 4
2 3 4
3 4 4
4 5 4
但是,当我将其附加到现有数据框时,我会得到我想要的行为。
import pandas as pd
df = pd.DataFrame(d)
df = df.append(d, ignore_index=True)
print(df)
val_1 val_2
0 1 4
1 2 4
2 3 4
3 4 4
4 5 4
5 [1, 2, 3, 4, 5] 4
如何从dict创建数据框,并在附加案例中只获取一行?
val_1 val_2
0 [1, 2, 3, 4, 5] 4
提前感谢所有人的帮助
答案 0 :(得分:6)
将值包装在列表中:
pd.DataFrame({k: [v] for k, v in d.items()})
# val_1 val_2
#0 [1, 2, 3, 4, 5] 4
答案 1 :(得分:4)
您可以从pd.Series
开始:
pd.Series(d).to_frame().T
val_1 val_2
0 [1, 2, 3, 4, 5] 4
答案 2 :(得分:3)
您可以使用
df=pd.DataFrame(columns=d.keys())
df.append(d, ignore_index=True)
Out[26]:
val_1 val_2
0 [1, 2, 3, 4, 5] 4
答案 3 :(得分:0)
您可以使用from_dict
,但列的顺序是互换的:
In[151]: pd.DataFrame.from_dict(d,orient='index').T
Out[151]:
val_2 val_1
0 4 [1, 2, 3, 4, 5]