带有 df 的字典。如何填充字典值中的空数据框?

问题描述 投票:0回答:1

我用数据框创建了字典。我想填充每个数据框 - 向每个数据框添加新行。它是在 for 循环中。 当我有一个数据框和值列表时,它就可以工作:

row = [20, 'Gornik Zabrze', 'Radomiak Radom', 0, 0]
length = len(df)
df.loc[length] = row

但是当我使用字典时它不起作用。

例如我有这个代码:


List = ['Maths','Science','Geography','History','English']
 
Dictionary = {}
 
for i in List:
    Dictionary[i] = pd.DataFrame(columns=["Name", "Level", "Country"])
 
print("Created multiple dataframes in a loop:\n", Dictionary)

我想为每个数据框添加行。但当我使用时:

row = ["Mat", 5, "Poland"]
Dictionary["Maths"].append(row)

我明白了(新专栏,这对我来说不正确):

enter image description here

此代码也不起作用,我收到密钥错误:

Dictionary["Maths"].loc[0].append(row)

我想在字典中的每个数据框中获取新行。

然后我想为每个行添加另一个新行,itd。

python dataframe dictionary scrapy append
1个回答
0
投票

让我们使用

concat
来修复您的代码
append
在最近的 pandas 版本(>= 1.4.0)中已被弃用。

cols = ["Name", "Level", "Country"]
Dictionary['Maths'] = pd.concat([Dictionary['Maths'], pd.DataFrame([row], columns=cols)])

结果

print(Dictionary['Maths'])

  Name Level Country
0  Mat     5  Poland

仅供参考:从优化 POV 来看,在循环中使用多次 concat 并不是一个好主意,相反,您可以累积循环中的所有行,然后从这些行创建一个 DataFrame。

© www.soinside.com 2019 - 2024. All rights reserved.