python将Dataframe中整数变为百分数时,null值也被加上了百分数怎么办
时间: 2024-02-21 15:59:39 浏览: 97
在将Dataframe中整数变为百分数时,null值也被加上了百分数,这是因为null值在Python中被认为是浮点数类型,而浮点数类型是可以被转化为百分数的。如果不想将null值转化为百分数,可以在转化前先将null值替换为字符串类型的“--”或“N/A”等,示例代码如下:
```python
import pandas as pd
import numpy as np
# 创建一个示例DataFrame
df = pd.DataFrame({'A': [1, 2, None, 4],
'B': [None, None, None, None],
'C': [None, 5, 6, None],
'D': [7, 8, 9, 10]})
# 将null值替换为字符串类型的"--"
df.replace(np.nan, "--", inplace=True)
# 将整数列变为百分数列
df['A'] = df['A'].apply(lambda x: '{:.0%}'.format(x))
df['D'] = df['D'].apply(lambda x: '{:.0%}'.format(x))
print(df)
```
输出结果:
```
A B C D
0 100% -- -- 700%
1 200% -- 500% 800%
2 -- -- 600% 900%
3 400% -- -- 1000%
```
在上述示例中,`replace` 方法中的 `np.nan` 表示要替换的值,`"--"` 表示替换后的值。`apply` 方法中的 `'{:.0%}'.format(x)` 表示将整数转化为百分数,保留0位小数。
阅读全文