可以使用dropna()
方法。该方法会返回一个新的Series或DataFrame,其中只包含原始数据中非NaN值的部分。
下面是完善且全面的答案:
获取pandas列的所有非NaN值可以使用dropna()
方法。该方法会返回一个新的Series或DataFrame,其中只包含原始数据中非NaN值的部分。
具体使用方法如下:
dropna()
方法,例如:import pandas as pd
# 创建一个包含NaN值的Series
s = pd.Series([1, 2, np.nan, 4, np.nan])
# 获取所有非NaN值
result = s.dropna()
print(result)
输出:
0 1.0
1 2.0
3 4.0
dtype: float64
axis
参数为1来删除包含NaN值的列,例如:import pandas as pd
import numpy as np
# 创建一个包含NaN值的DataFrame
df = pd.DataFrame({'A': [1, 2, np.nan, 4, np.nan],
'B': [np.nan, 2, 3, np.nan, 5]})
# 获取所有非NaN值的列
result = df.dropna(axis=1)
print(result)
输出:
Empty DataFrame
Columns: []
Index: [0, 1, 2, 3, 4]
除了dropna()
方法,还可以使用notnull()
方法来获取非NaN值的布尔索引,然后通过布尔索引来筛选数据。例如:
import pandas as pd
import numpy as np
# 创建一个包含NaN值的Series
s = pd.Series([1, 2, np.nan, 4, np.nan])
# 获取所有非NaN值
result = s[s.notnull()]
print(result)
输出:
0 1.0
1 2.0
3 4.0
dtype: float64
对于DataFrame对象,可以使用notnull()
方法生成布尔索引,然后通过布尔索引来筛选数据。例如:
import pandas as pd
import numpy as np
# 创建一个包含NaN值的DataFrame
df = pd.DataFrame({'A': [1, 2, np.nan, 4, np.nan],
'B': [np.nan, 2, 3, np.nan, 5]})
# 获取所有非NaN值的列
result = df[df.notnull()]
print(result)
输出:
A B
0 1.0 NaN
1 2.0 2.0
2 NaN 3.0
3 4.0 NaN
4 NaN 5.0
推荐的腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云