python - 为什么我的 for 循环会覆盖我的输出?
问题描述
我明白我做错了什么,但不知道如何解决它。我正在尝试将“Z”写入excel,然后在遍历所有列表条目后保存,但是DF中的索引会重置每次迭代并覆盖,所以我只看到我的最后一个列表条目,而不是全部5个。
任何帮助表示赞赏。
orig_df = (pd.read_excel("abc.xlsx"))
writer = pd.ExcelWriter('NEW_Frame.xlsx', engine='xlsxwriter')
List1 = ['Market_A', 'Market_B', 'Market_C', 'Market_D', 'Market_E']
new_df = pd.DataFrame(columns=['Location','Data1','Data2','Data3'], index=range(5))
for i in range(len(List1)) :
M = List1[i]
P = List1[i]
M = abc[abc.Location.str.contains(M)]
Z = [{'Location': P , 'Data1': abc['Data1'].sum(), 'Data2': abc['Data2'].sum(), 'Data3':
abc['Data3'].sum(),}]
Z = pd.DataFrame(Z)
Z.to_excel(writer, sheet_name=P)
i += 1
writer.save()
解决方案
因为我没有你的输入文件,所以我只是保存了一个小的测试数据框,但我可以毫无问题地保存所有 5 个页面:
writer = pd.ExcelWriter('NEW_Frame.xlsx', engine='xlsxwriter')
for sheet_name in ['Market_A', 'Market_B', 'Market_C', 'Market_D', 'Market_E']:
df = pd.DataFrame({'test1': [1,1,1], 'test2': [2,2,2]})
df.to_excel(writer, sheet_name=sheet_name)
writer.save()
你能试试这个,看看你有没有问题?
推荐阅读
- android - Android Kotlin 中 AWS Cognito 服务的登录或登录回调
- angularjs - 角度翻译 Href _blank 不起作用
- javascript - 这个元素索引
- python - 列表切片出索引
- python - Pandas:根据索引标签与列标签条件聚合行
- c - 在 C 中找到两个没有的 LCM
- javascript - 试图让元素在点击后出现一次,但出现不止一次
- javascript - 类型“{}”不可分配给类型“池”。类型“{}”中缺少属性“配置”
- php - 使用 PHP 从 FFMPEG 读取实时输出
- vue.js - 如何订阅 Vue 中状态的属性?