null_ratio_percentage = null_courts_df.applymap(lambda x: "{:.2f}%".format(x * 100)),这段代码将Dataframe中的null值也变成了百分数
时间: 2024-02-21 15:00:02 浏览: 129
Pandas实现DataFrame按行求百分数(比例数)
是的,`applymap` 方法会对Dataframe中的每个元素应用指定的函数,并返回一个新的Dataframe。在你提供的代码中,应用的函数是 `lambda x: "{:.2f}%".format(x * 100)`,它的作用是将传入的数值乘以100并保留两位小数,然后加上百分号并转化为字符串类型。因此,无论Dataframe中的元素是不是缺失值,最终都会被转化为百分数的形式。
如果你只想将Dataframe中的非缺失值转化为百分数,可以先使用 `fillna` 方法将缺失值填充为0,然后再应用 `applymap` 方法。示例代码如下:
```python
import pandas as pd
import numpy as np
# 创建一个包含缺失值的示例Dataframe
df = pd.DataFrame({'A': [1, 2, None, 4],
'B': [None, 1.5, 2.5, None],
'C': [3, 4, 5, 6]})
# 将缺失值填充为0
df_filled = df.fillna(0)
# 将非缺失值转化为百分数
df_percentage = df_filled.applymap(lambda x: "{:.2f}%".format(x * 100) if x != 0 else np.nan)
print(df_percentage)
```
输出结果:
```
A B C
0 100.00% nan 300.00%
1 200.00% 150.00% 400.00%
2 nan 250.00% 500.00%
3 400.00% nan 600.00%
```
在上述示例中,`fillna(0)` 将缺失值填充为0,然后 `applymap` 方法中的 `lambda x: "{:.2f}%".format(x * 100) if x != 0 else np.nan` 表示只将非缺失值转化为百分数,缺失值仍保留为缺失值。注意,这里使用了numpy库中的 `np.nan` 表示缺失值,而不是Python内置的 `None`。
阅读全文