python将object转为百分数
时间: 2023-09-28 08:05:35 浏览: 138
如果你的DataFrame中有字符串类型的百分数,你可以使用 `str.strip` 方法去除百分号,并将字符串转化为浮点数,然后除以100转化为小数。示例代码如下:
```python
import pandas as pd
# 创建一个包含字符串类型百分数的示例DataFrame
df = pd.DataFrame({'A': ['30%', '50%', '70%'],
'B': ['80%', None, '90%']})
# 将字符串类型百分数转化为浮点数类型的小数
df['A'] = df['A'].str.strip('%').astype(float) / 100
df['B'] = df['B'].str.strip('%').astype(float) / 100
# 将浮点数类型的小数转化为字符串类型的百分数
df['A'] = df['A'].apply(lambda x: '{:.0%}'.format(x))
df['B'] = df['B'].apply(lambda x: '{:.0%}'.format(x) if pd.notnull(x) else None)
print(df)
```
输出结果:
```
A B
0 30% 80%
1 50% None
2 70% 90%
```
在上述示例中,`str.strip('%').astype(float) / 100` 表示先使用 `str.strip` 方法去除百分号,并将字符串转化为浮点数,然后除以100转化为小数。`apply` 方法中的 `'{:.0%}'.format(x)` 表示将小数转化为字符串类型的百分数,保留0位小数。注意,如果列中有缺失值,需要使用 `pd.notnull` 判断,避免将缺失值转化为百分数。
阅读全文