在Pandas中,将dictionary与输出数据帧的单个值组合



如果我有很多字典,如何最好地将它们组合成一个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}

期望输出:

1//tr>7
Col_Anameage
somevalueSam26
somevalueTyler
somevalueBrock
diffvalueFred14
diffvaluePhilbert20

您可以为每个数据元素创建一个数据帧,然后使用:

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

最新更新