如果另一列的条目在pandas中为nan,则将数据框的条目附加到列表中?

时间:2017-10-13 13:25:05

标签: python pandas lambda list-comprehension

这里的第一个问题所以它可能有点凌乱。

所以我有一个这样的数据框:

           A          B
1:        'a'       'aa'
2:        'b'       NaN
3:        'c'       NaN
4:        'd'       'dd'

我已经创建了一个列表:

lst=[]

如果column A的值为list,我希望将Column B中的值附加到此NaN,在这种情况下也称为['b','c']

循环确实有效,但有一种优雅的方式(例如使用lambdas)吗?

谢谢!

1 个答案:

答案 0 :(得分:3)

使用boolean indexing进行过滤,str.strip删除'

lst = df.loc[df['B'].isnull(), 'A'].tolist()
print (lst)
["'b'", "'c'"]
lst = df.loc[df['B'].isnull(), 'A'].str.strip("'").tolist()
print (lst)
['b', 'c']

详情:

print (df['B'].isnull())
1:    False
2:     True
3:     True
4:    False
Name: B, dtype: bool

print (df.loc[df['B'].isnull(), 'A'])
2:    'b'
3:    'c'
Name: A, dtype: object

print (df.loc[df['B'].isnull(), 'A'].str.strip("'"))
2:    b
3:    c
Name: A, dtype: object