python - 是否可以在数据框中格式化数字而不将它们转换为字符串?
问题描述
我想将数据框以 xls 格式导出到 Excel,并显示带有 1000 个分隔符和 2 个小数位的数字,以及带有 2 个小数点的百分比,例如 54356 作为 54,356.00 和 0.0345 作为 3.45%
当我使用 .map() 和 .format 在 python 中更改格式时,它会在 python 中正确显示它们,但会将它们转换为字符串,并且当我将它们导出到 xls 时,Excel 不会将它们识别为数字/百分比。
import pandas as pd
d = {'Percent': [0.01, 0.0345], 'Number': [54464.43, 54356]}
df = pd.DataFrame(data=d)
df['Percent'] = pd.Series(["{0:.2f}%".format(val * 100) for val in df['Percent']], index = df.index)
df['Number'] = df['Number'].map('{:,.2f}'.format)
数据框看起来像预期的那样,但是单元格的类型现在是 str,如果我将其导出到 xls (df.to_excel('file.xls')),Excel 会显示“此单元格中的数字格式为文本或前面有一个撇号”警告。
解决方案
也许 lambda 会更有帮助
df['Percent'] = df['Percent'].apply(lambda x: round(x*100, 2))
df['Number'] = df['Number'].apply(lambda x: round(x, 2))
推荐阅读
- azure-cosmosdb - 空间索引不适用于 ST_DISTANCE 查询和“<”
- prolog - Prolog assert/1 对传递的术语有什么作用?
- python-3.x - AttributeError:“CollectionReference”对象没有属性“set”
- javascript - 将 babel-loader 指向不同的 tsconfig.json 文件
- javascript - “未定义”作为数组的输出
- go - Route53:按 RecordType 过滤 ListResourceRecordSets
- android - TextView onClickListener 无法识别点击
- r - Rshiny ConditionalPanel 显示两个条件
- java - 如何处理运动流记录?(多处理器)
- html - 如何将 1 个渐变变成多个元素