如果我有很多字典,如何最好地将它们组合成一个Panda DataFrame?我还希望有一个添加的列,每个列都有一个给定的值;批次";字典。
示例输入:
# Declare initial parameters:
bonuscolumn_name = 'Col_A'
desired_pd = pd.DataFrame(columns=['bonuscolumn_name', 'name', 'age'])
# First batch of dictionaries:
bonuscolumn_value1 = 'somevalue'
dict1 = {'name':'Sam', 'age':26}
dict2 = {'name':'Albert', 'age':21}
dict3 = {'name':'Brock', 'age':57}
# Second batch of dictionaries:
bonuscolumn_value1 = 'diffvalue'
dict4 = {'name':'Fred', 'age':14}
dict5 = {'name':'Philbert', 'age':20}
期望输出:
Col_A | name | age |
---|---|---|
somevalue | Sam | 26 |
somevalue | Tyler | 1//tr>|
somevalue | Brock | 7|
diffvalue | Fred | 14 |
diffvalue | Philbert | 20 |
您可以为每个数据元素创建一个数据帧,然后使用:
df = pd.concat([dict1, dict2, dict3, dict4, dict5, dict6], keys=[dict1, dict2, dict3, dict4, dict5, dict6])
然后:
df.reset_index(inplace=True)
尝试:
# First batch of dictionaries:
bonuscolumn_value1 = 'somevalue'
dict1 = {'name':'Sam', 'age':26}
dict2 = {'name':'Albert', 'age':21}
dict3 = {'name':'Brock', 'age':57}
df1 = pd.DataFrame([dict1, dict2, dict3]).assign(bonuscolumn_name=bonuscolumn_value1)
# Second batch of dictionaries:
bonuscolumn_value1 = 'diffvalue'
dict4 = {'name':'Fred', 'age':14}
dict5 = {'name':'Philbert', 'age':20}
df2 = pd.DataFrame([dict4, dict5]).assign(bonuscolumn_name=bonuscolumn_value1)
df = pd.concat([df1, df2], ignore_index=True)
最终输出:
>>> df
name age bonuscolumn_name
0 Sam 26 somevalue
1 Albert 21 somevalue
2 Brock 57 somevalue
3 Fred 14 diffvalue
4 Philbert 20 diffvalue