python - 按属性拆分
问题描述
我正在尝试阅读一个大的 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 文件。是否可以?
解决方案
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)
推荐阅读
- php - 我的本地主机或我的代码没有插入数据库
- javascript - Javascript如何正确过滤html div
- android - 如何显示来自 URL 的 a.txt 文件并使每个项目可点击?
- unit-testing - 单元测试 umbraco 7.12 控制器
- java - 下载较旧的 VSCode 扩展(Java 调试器)
- javascript - 直接处理来自 AJAX 请求的数据
- c# - 如何创建自签名证书来签署 MimeKit 消息?
- coldfusion - cfinvoke 有两种不同的方法
- icalendar - 如何在每月第一个星期六之前的星期五编写 ICS 文件?
- thymeleaf - Workaround for #request.getParameters() in Thymeleaf