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

时间:2019-06-17 20:22:02

标签: python pandas dataframe

我有一个字典,该字典是具有所有相同列和数据结构的数据帧的列表。我想本质上再次将所有这些“统一”到一个数据帧中,在该数据帧中,字典键将转换为另一列: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

...等等

但想要:

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 个答案:

答案 0 :(得分:5)

这应该做

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())