簡體   English   中英

Pandas 根據列中的值將數據幀拆分為多個 csv

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM