Python 将groupby迭代循环到Excel
我有一个数据框,详细说明了门店位置和收入信息。我希望迭代此信息,但按位置和机器编号将其分解,然后将此信息导出到excel。我当前的数据帧如下所示Python 将groupby迭代循环到Excel,python,excel,iteration,Python,Excel,Iteration,我有一个数据框,详细说明了门店位置和收入信息。我希望迭代此信息,但按位置和机器编号将其分解,然后将此信息导出到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
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
理想情况下,输出将如下所示
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
欢迎提供任何指导。为此,您可以使用创建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)
excel结果应该在一张纸上吗?重复列标题?感谢您的回复。是的,理想情况下,它是在一张有重复页眉的纸上。