[英]Pandas split data frames into multiple csv's based on value from column
我有一个与此类似的问题,但我需要一些进一步的步骤。 问题是我的文件包含 50k+ 行。 每行有 4 个值“Indicator”、“Country”、“Date”和“value”。 我想根据国家拆分我的 CSV。 我不知道有多少个国家,所以所有具有相似名称的国家都应该在一个 CSV 文件中,依此类推。 CSV 文件也没有排序。 我正在使用 pandas,这是我目前的代码:
import pandas as pd
def read_csvfile():
df = pd.read_csv('ebola_data_db_format.csv', sep= ',')
#remove the unneeded columns
df = df[df['Country'] != "Guinea 2"]
df = df[df['Country'] != "Liberia 2"]
#reset the index
df.reset_index(drop=True, inplace=True)
print (df.head(10))
read_csvfile()
我希望能够为每个国家/地区创建一个 CSV 文件,这样我就可以分别 plot 他们的数据。 请帮助!
您可以使用分组:
country_dfs = {k:v for k,v in df.groupby('Country')}
要将它们保存在几个 csv 文件中:
for k, v in df.groupby('Country'):
v.to_csv(f'{k}.csv')
或来自country_dfs
:
for k, v in country_dfs.items():
v.to_csv(f'{k}.csv')
你可以在这里使用dictionary comprehension
:
dfs_dict = {j: df[df['Country'] == j] for j in df['Country'].unique()}
要在country
cdv 中保存country-wise
数据,请执行以下操作:
for k, v in dfs_dict.items():
v.to_csv('{}.csv'.format(k))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.