[英]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.