pandas列是否为空_如果列值不为空,Python pandas将应用函数

我有一个数据帧(在Python 2.7中,pandas是0.15.0):df=

A B C

0 NaN 11 NaN

1 two NaN ['foo', 'bar']

2 three 33 NaN

我想对特定列中不包含空值的行应用一个简单的函数。我的功能尽可能简单:def my_func(row):

print row

我的申请代码如下:df[['A','B']].apply(lambda x: my_func(x) if(pd.notnull(x[0])) else x, axis = 1)

它工作得很好。如果我想检查列“B”中的空值,pd.notnull()也可以正常工作。但如果我选择包含列表对象的列“C”:df[['A','C']].apply(lambda x: my_func(x) if(pd.notnull(x[1])) else x, axis = 1)

然后我得到以下错误消息:ValueError: ('The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()', u'occurred at index 1')

有人知道为什么pd.notnull()只适用于整数列和字符串列,而不适用于“列表列”?

是否有更好的方法来检查列“C”中的空值,而不是这样:df[['A','C']].apply(lambda x: my_func(x) if(str(x[1]) != 'nan') else x, axis = 1)

谢谢你!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值