1 回答

TA貢獻1829條經驗 獲得超7個贊
您為每個字典鍵分配了一個方法。您需要使用 調用 copy (),即df.loc[df['CountryName'] == country].copy()。
但是,無需在循環中對 DataFrame 進行子集化。這正是groupby制作的目的,您可以簡潔地創建字典
df_collection = dict(tuple(df.groupby('CountryName')))
這是因為__iter__groupby 對象的方法:“返回:生成器為每個組產生(名稱,子集對象)序列”,因此使用單個分組鍵,這些值成為字典的鍵。
樣本
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
添加回答
舉報