【问题标题】:Split per attribute按属性拆分
【发布时间】:2021-02-02 05:44:14
【问题描述】:

我正在尝试读取一个大的 CSV。然后根据 team 列中的唯一值将大 CSV 拆分为较小的 CSV 文件。 起初我为每个team 创建了新的数据框。生成的新 txt 文件,为 team 列中的每个唯一值一个。

代码

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

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

【问题讨论】:

标签: python pandas dataframe


【解决方案1】:
  • 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)

【讨论】:

  • 感谢工作正常。我是 Python 新手。这是打印格式吗:f'{group}.txt'
  • @Anonymus 这是一个 f 字符串。所以你可以干净地把一个变量放在一个字符串中。
  • 这是 2014 年询问 Pandas: split dataframe on values of ID column and write to csv, generate filenames from values in column 的更清晰、更清晰的解决方案。我希望我们可以关闭那个,但我们不能......
  • @smci 是的,我只是在你发布之后才看到它,并在想同样的事情。
  • @TrentonMcKinney:我觉得我在道德上应该得到'附属推荐奖金'...... :-)
猜你喜欢
  • 2019-04-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-21
相关资源
最近更新 更多