首页 > 解决方案 > 按属性拆分

问题描述

我正在尝试阅读一个大的 CSV。然后根据列中的唯一值将大 CSV 拆分为较小的 CSV 文件team。起初,我为每个team. team生成的新 txt 文件,对应于列中的每个唯一值。

代码

import pandas as pd
df = pd.read_csv('combined.csv')
df = df[df.team == 'RED']
df.to_csv('RED.csv')

但是,我想从单个数据框开始,读取所有唯一的“团队”,并为每个团队创建一个带有标题的 .txt 文件。是否可以?

标签: pythonpandasdataframe

解决方案


  • pandas.DataFrame.groupby,当不使用聚合时,返回与 groupby 列中的每个组关联的数据框组件。
  • 以下代码将为与用于 groupby 的列中的每个唯一值关联的数据创建一个文件。
  • 用于f-strings为每个组创建唯一的文件名。
import pandas as pd

# create the dataframe
df = pd.read_csv('combined.csv')

# groupby the desired column and iterate through the groupby object
for group, dataframe in df.groupby('team'):
    
    # save the dataframe for each group to a csv
    dataframe.to_csv(f'{group}.txt', sep='\t', index=False)

推荐阅读