Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将带有数字的Python数据框列导出为带有逗号分隔符的整数,并能够对它们进行求和/除/乘?_Python_Excel_Pandas_Xlsxwriter - Fatal编程技术网

如何将带有数字的Python数据框列导出为带有逗号分隔符的整数,并能够对它们进行求和/除/乘?

如何将带有数字的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)

我有一个数据框,有几列数字。我想将它们导出为整数,但对于超过999的数字,要使用逗号分隔符

我能够做到,但当它们被导出时,我无法操纵数字,就好像它们因为逗号而变成字符串一样

我尝试了这个,但没有成功:

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有用吗?