如何从数据框字典创建 Pandas 数据框?

6

我有一个字典,它是由具有相同列和数据结构的数据帧列表组成的。我想将它们合并为一个数据帧,其中字典键转换为另一列:df_list{}

{'A' : col1 col2 col3 \
001    val1  val2  val3
002    val3  val4  val5

'B' : col1 col2 col3 \
001    val1  val2  val3
002    val3  val4  val5

...and so on

but am wanting:

key  Col1  Col2  Col3
A    val1  val2  val3
A    val4  val5  val6
B    val1  val2  val3
B    val4  val5  val6

我尝试使用 pd.DataFrame.from_dict(),但是要么我没有正确使用它,要么我需要其他的东西...

final_df = pd.DataFrame.from_dict(df_list)

但是出现错误:ValueError: 如果使用所有标量值,则必须传递索引。

当我尝试传递索引时,只得到了一个列而不是数据帧。


1
pd.concat(df_dict, axis=0).reset_index()怎么样? - cs95
哇,成功了! - user3486773
1个回答

11
这应该做到了:
import pandas as pd

df1 = pd.DataFrame({
    "col1":['val1','val3'],
    "col2":['val2','val3'],
    "col3":['val3','val5']
})


df2 = pd.DataFrame({
    "col1":['val7','val3'],
    "col2":['val2','val3'],
    "col3":['val3','val5']
})

pd_dct = {"A": df1, "B": df2}

# adding the key in 
for key in pd_dct.keys():
    pd_dct[key]['key'] = key 

# concatenating the DataFrames
df = pd.concat(pd_dct.values())

另一种方法是使用以下单行代码来完成:

pd.concat(pd_dct, axis=0).reset_index(level=0).rename({'level_0':'key'}, axis=1)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接