我有一个名为cleaned_data.csv的.csv,其格式如下:
Date,State,Median Listing Price
1/31/2010,Alabama,169900
2/28/2010,Alabama,169900
3/31/2010,Alabama,169500
1/31/2010,Alaska,239900
2/28/2010,Alaska,241250
3/31/2010,Alaska,248000
我想为每个州创建一个名为{state} .csv的新.csv文件,该文件应具有日期和中位数标价。
到目前为止,我有这个:
import pandas
csv = pandas.read_csv('cleaned_data.csv', sep='\s*,\s*', header=0, encoding='utf-8-sig')
state_list = ['Alabama', 'Alaska', 'Arizona', 'Arkansas', ...]
for state in state_list:
csv = csv[csv['State'] == f'{state}']
csv.to_csv(f'state_csvs/{state}.csv', index=False, sep=',')
这成功创建了以每个州命名的51个.csv文件,但只有Alabama.csv具有阿拉巴马州的日期,州和中位数价格数据。每隔.csv仅具有以下没有数据的标头:
Date,State,Median Listing Price
有人可以向我解释为什么会发生这种情况,以及如何解决它或更好的方法吗?
加分点:我实际上不需要新的.csv文件中的“状态”列,但不确定如何仅添加日期和中位数标价。
答案 0 :(得分:1)
尝试:
for i in df['State'].unique():
df.loc[df['State'] == i][['Date', 'Median Listing Price']].to_csv(f'state_csvs/{i}.csv', index=False)