如何将带有数字的Python数据框列导出为带有逗号分隔符的整数,并能够对它们进行求和/除/乘?
我有一个数据框,有几列数字。我想将它们导出为整数,但对于超过999的数字,要使用逗号分隔符 我能够做到,但当它们被导出时,我无法操纵数字,就好像它们因为逗号而变成字符串一样 我尝试了这个,但没有成功:如何将带有数字的Python数据框列导出为带有逗号分隔符的整数,并能够对它们进行求和/除/乘?,python,excel,pandas,xlsxwriter,Python,Excel,Pandas,Xlsxwriter,我有一个数据框,有几列数字。我想将它们导出为整数,但对于超过999的数字,要使用逗号分隔符 我能够做到,但当它们被导出时,我无法操纵数字,就好像它们因为逗号而变成字符串一样 我尝试了这个,但没有成功: format_mapping={'Balance': '{:,.0f}'} for key, value in format_mapping.items(): cash_tracker_df[key] = cash_tracker_df[key].apply(value.format)
format_mapping={'Balance': '{:,.0f}'}
for key, value in format_mapping.items():
cash_tracker_df[key] = cash_tracker_df[key].apply(value.format)
我阅读以下内容以了解我的现状:
我使用了熊猫和XLSX
任何帮助都将不胜感激 定义格式时,应使用num_format属性
import pandas as pd
df = pd.DataFrame({'A': [1,2,3,4,1000,1001,10000,10001]})
writer = pd.ExcelWriter('test.xlsx', engine='xlsxwriter')
df.to_excel(writer, sheet_name='Sheet1', index=False)
workbook = writer.book
worksheet = writer.sheets['Sheet1']
cellFormat = workbook.add_format({'num_format': '#,##'})
worksheet.set_column('A:A', 10, cellFormat)
writer.save()
输出:
最后,如果您想使用十进制分隔符,您应该使用
“num_格式”:“#,##.00”
有关更多信息,请查看那么,您是说,当您在Excel中打开导出的文件时,您希望余额列中的单元格采用带有千位分隔符的数字格式吗?@EricTruett是的。我可以添加逗号,但我不能使用像加减这样的数字…就好像它们变成了带逗号的字符串一样。这是df/excel中的余额和其他几个列。谢谢。这绝对是有希望的。不幸的是,它仍然不起作用。我写道:``cellFormat=cash\u tracker\u df.add\u format({'num\u format':'#,###})cash\u tracker\u df.set\u column('Balance',10,cellFormat)``我得到:AttributeError:'DataFrame'对象没有属性'add\u format'。我现在能做什么?你不应该在panda的df上调用add\u format方法,而应该在SXwriter的工作簿对象上调用add\u format方法。请看这里和我的示例代码,了解如何创建工作簿对象,然后定义其格式。我不建议使用熊猫进行格式化。一般来说,您希望在pandas中完成数据操作,然后将df传递到xlsxwriter以开始格式化它,或者创建一个宏。很抱歉,我很难理解。“不应该在panda的df上调用add_format方法,而应该在xlsxwriter的工作簿对象上调用add_format方法”是什么意思?我不需要创建工作簿对象,因为我所有的东西都是从Excel导入并放入数据框中的。你能详细说明一下吗?谢谢让我问你这个问题,这样我才能更好地理解你想要实现的目标。是否要将数据框输出为具有适当格式的excel文件,如我的答案中的输出图片所示?在这种情况下,您应该使用pandas+xlsxwriter。或者您只想在IDE中预览带有逗号分隔符的数据帧?我想将df输出为excel格式,格式与您的图片类似。我还在研究…xlwings有用吗?