python - 浮点数的熊猫数据框列到百分比样式错误
问题描述
我正在尝试将浮点数的熊猫数据框列转换为百分比样式
C
0.9977
0.1234
1.000
..
至
C
99.77%
12.34%
100%
...
为此,我正在做:
df['C'] = df['C'].map(lambda n: '{:.2%}'.format(n))
但我收到以下错误:
ValueError: Unknown format code '%' for object of type 'str'
我也试过'{:,.2%}'
同样的错误......
我做错了什么?
解决方案
首先将列转换为浮点数astype
:
df['C'] = df['C'].astype(float).map(lambda n: '{:.2%}'.format(n))
解决方案也应该简化:
df['C'] = df['C'].astype(float).map("{:.2%}".format)
编辑:
问题是列中的一些非数值。
将非数字替换为0
:
print (df)
C
0 0.9977
1 0.1234
2 Covered fraction
df['C'] = pd.to_numeric(df['C'], errors='coerce').fillna(0).map("{:.2%}".format)
print (df)
C
0 99.77%
1 12.34%
2 0.00%
或删除具有这些值的行:
df['C'] = pd.to_numeric(df['C'], errors='coerce')
df = df.dropna(subset=['C'])
df['C'] = df['C'].astype(float).map("{:.2%}".format)
print (df)
C
0 99.77%
1 12.34%
推荐阅读
- python - 计算预定义词典中单词的频率
- reactjs - 自定义 withStyles Material UI React 样式组件
- javascript - 一直没有从ajax调用加载数据
- mapbox - Mapbox:是否可以更新图层层次结构?
- javascript - Google Maps Shape Api GeoJson 未从 php 获取价值
- sql-server - 列上的 MS SQL 约束
- elasticsearch - ElasticSearch 无痛,我如何访问 _source 中的数组
- python - 使用 .rstrip("@") 从 Python 列表中删除电子邮件地址
- c# - 为什么 CosmosDB 只保存公共成员?
- java - 有没有办法通过 GET 请求获取请求正文?