python - 将 groupby 迭代循环到 Excel
问题描述
我有一个数据框,详细说明了有关商店位置和收入的信息。我想迭代此信息,但按位置和机器编号将其分解,然后将此信息导出到 Excel。我当前的数据框看起来像这样
Location Machine Number Net Funds Net Revenue
0 Location 1 123456 123 76
1 Location 1 325462 869 522
2 Location 1 569183 896 234
3 Location 2 129756 535 542
4 Location 2 234515 986 516
5 Location 2 097019 236 512
6 Location 3 129865 976 251
理想情况下,输出看起来像这样
Machine Number Net Funds Net Revenue
Location 1
123456 123 76
325462 869 522
269183 896 234
Machine Number Net Funds Net Revenue
Location 2
129756 535 542
234515 986 516
097019 236 512
Machine Number Net Funds Net Revenue
Location 3
129865 976 251
虽然我已经能够将这些数据迭代成我喜欢使用的格式
for name, group in grouped:
print(name)
print(group)
我不能把它叫做 xlsxwriter。
任何指导将不胜感激。
解决方案
为此,您可以使用to_csv创建一个 csv 字符串,然后调整列标题。您可以在 Excel 中打开 CSV 文件。
试试这个代码:
import pandas as pd
cols = ['Location','Machine Number','Net Funds','Net Revenue']
lst = [
['Location 1','123456',123, 76],
['Location 1','325462',869,522],
['Location 1','569183',896,234],
['Location 2','129756',535,542],
['Location 2','234515',986,516],
['Location 2','097019',236,512],
['Location 3','129865',976,251]]
df = pd.DataFrame(lst, columns=cols)
loclst = df['Location'].unique().tolist()
cc = ""
for loc in loclst:
dfl = df[df['Location']==loc][cols[1:]]
cc += ','.join(cols[1:]) + '\n' + loc+',,\n' + dfl.to_csv(index=False, header=False)
print(cc)
with open('out.csv','w') as f:
f.write(cc.replace('\r\n','\n'))
输出(out.csv)
Machine Number,Net Funds,Net Revenue
Location 1,,
123456,123,76
325462,869,522
569183,896,234
Machine Number,Net Funds,Net Revenue
Location 2,,
129756,535,542
234515,986,516
097019,236,512
Machine Number,Net Funds,Net Revenue
Location 3,,
129865,976,251
推荐阅读
- java - 如何在 JavaFX Tableview 中增加表格标题和表格单元格的宽度
- hadoop - 通过在与 Kerberos/SSL/LDAP 集群集成的 Cloudera Hadoop CDH 6.3.3 上运行的 hadoop fs -ls 访问谷歌云存储桶时出错
- go - 是否可以对 gorm 和 json 使用相同的结构?
- python - 如果它们都为空,如何在 PySpark 中一次替换多个列中的值?
- sql - sql 聚合
- php - SPA 的 config/fortify.php 文件中“守卫”和“中间件”的正确值是什么?
- c - 我应该在 C 中创建一个全局缓冲区吗
- css - React / CSS:不改变我的导航栏背景颜色的夜间模式按钮
- image-processing - 使用 ffmpeg 缩小图像时图像变得透明
- postgresql - 如何使用 psql 连接到 RDS Postgres 实例