1 回答

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超7個(gè)贊
您為每個(gè)字典鍵分配了一個(gè)方法。您需要使用 調(diào)用 copy (),即df.loc[df['CountryName'] == country].copy()。
但是,無需在循環(huán)中對 DataFrame 進(jìn)行子集化。這正是groupby制作的目的,您可以簡潔地創(chuàng)建字典
df_collection = dict(tuple(df.groupby('CountryName')))
這是因?yàn)開_iter__groupby 對象的方法:“返回:生成器為每個(gè)組產(chǎn)生(名稱,子集對象)序列”,因此使用單個(gè)分組鍵,這些值成為字典的鍵。
樣本
print(df)
# CountryName Data
#0 a 8
#1 c 4
#2 b 4
#3 a 1
#4 a 1
#5 c 7
df_collection = dict(tuple(df.groupby('CountryName')))
## If you care for the subset defined in some list `country_names`, subset first
# df_collection = dict(tuple(df[df.CountryName.isin(country_names)].groupby('CountryName')))
df_collection['a']
# CountryName Data
#0 a 8
#3 a 1
#4 a 1
添加回答
舉報(bào)