1、示例
import pandas as pd
import numpy as np
# 创建一个带有NaN值的DataFrame示例
data = {'A': [1, 2, np.nan, 4],
'B': [np.nan, 2, 3, 4]}
df = pd.DataFrame(data)
# 将NaN值替换为None
df = df.where(pd.notna(df), None)
# 打印结果
print(df)
A B
0 1 None
1 2 2
2 None 3
3 4 4
2、原理
在上面的示例中,df.where(pd.notna(df), None)
使用 pd.notna(df)
作为条件,它返回一个布尔
DataFrame,其中元素为 True 表示原始 DataFrame 中的对应元素不是 NaN。然后,df.where
使用 None
作为替换值,将不满足条件(即为 NaN 的元素)替换为 None。
3、df.where
df.where
是 Pandas 中用于根据条件筛选数据的函数。它返回一个与原始 DataFrame 结构相同的新
DataFrame,但只包含满足指定条件的元素,其他元素则被替换为 NaN 或自定义值。
3.1 语法
new_df = df.where(condition, other)
condition
是一个布尔条件,它用于筛选数据。只有满足条件的行和列的元素会保留,不满足条件的元素将被替换。other
是一个可选参数,它指定了用于替换不满足条件的元素的值。如果不提供other
,则默认为 NaN。
3、pd.notna(df)
pd.notna(df)
是 Pandas 的一个函数,用于检查 DataFrame 或 Series
中的每个元素是否不是缺失值(NaN)。它返回一个布尔值的 DataFrame 或 Series,其中的每个元素都是 True 或
False,指示相应位置是否包含有效数据(非缺失值)。
具体来说,pd.notna(df)
的作用是将输入的 DataFrame 或 Series
中的每个元素进行逐个检查,如果元素不是缺失值(NaN),则返回 True,否则返回 False。
import pandas as pd
import numpy as np
data = {'A': [1, 2, np.nan, 4],
'B': [5, np.nan, 7, 8]}
df = pd.DataFrame(data)
# 检查 DataFrame 中的每个元素是否不是缺失值
notna_df = pd.notna(df)
print(notna_df)
A B
0 True True
1 True False
2 False True
3 True True
输出将是一个与原始 DataFrame 结构相同的布尔值 DataFrame,其中 True 表示相应位置不是缺失值,False 表示相应位置是缺失值。
评论列表,共 0 条评论
暂无评论