我正在使用此DataFrame index
,它看起来像这样:
year personal economic human rank
country
Albania 2008 7.78 7.22 7.50 49
Albania 2009 7.86 7.31 7.59 46
Albania 2010 7.76 7.35 7.55 49
Germany 2011 7.76 7.24 7.50 53
Germany 2012 7.67 7.20 7.44 54
它已经在162个国家中使用了9年。我想做的是:
创建一个 for循环,该循环将返回一个新的数据框,其中包含每个国家/地区的数据,这些数据仅显示personal
,economic
,{{1} }和human
。
将每个数据框另存为rank
,其中包含数据所属国家/地区的名称。
答案 0 :(得分:1)
遍历国家和年份的唯一值。在另一个数据框中获取与该国家和年份有关的数据。保存。
df.reset_index(inplace=True) # To covert multi-index as in example to columns
unique_val = df[['country', 'year']].drop_duplicates()
for _, country, year in unique_val.itertuples():
file_name = country + '_' + str(year) + '.csv'
out_df = df[(df.country == country) & (df.year == year)]
out_df = out_df.loc[:, ~out_df.columns.isin(['country', 'year'])]
print(out_df)
out_df.to_csv(file_name)