pandas dataframe 选择包含np.nan的列,结果小结

探讨了在使用Pandas库进行数据处理时,不同列名选择方式对数据筛选结果的影响。通过对比单列和多列选择的差异,揭示了布尔型Series与DataFrame在实际应用中的行为区别。

dataframe 两种选择列名的不同,导致结果完全不同。
第1种正常的选择列,输出的是 布尔型series,可以在dataframe中直接使用;
第2种,[ ]中加 [ ] 可以选择多列,其返回值是 布尔型的dataFrame,直接用于筛选出现意外。

构造一个含有np.nan的dataframe,

df4=pd.DataFrame(data=np.arange(0,20).reshape(5,4),columns=['c1','c2','c3','c4'],index=range(0,5))
df4.loc[2,'c2']=np.nan
df4
# 第1种
df4['c2'].isnull()
df4[df4['c2'].isnull()]

对应输出为

0    False
1    False
2     True
3    False
4    False
Name: c2, dtype: bool

   c1	c2	c3	c4
2	8	NaN	10	11
# 第2种
df4[['c2']].isnull()

对应输出为

	c2
0	False
1	False
2	True
3	False
4	False
Name: c2, dtype: bool

    c1	c2	c3	c4
0	NaN	NaN	NaN	NaN
1	NaN	NaN	NaN	NaN
2	NaN	NaN	NaN	NaN
3	NaN	NaN	NaN	NaN
4	NaN	NaN	NaN	NaN

为什么第2种出现这种情况,还没考虑清楚。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值