这里的第一个问题所以它可能有点凌乱。
所以我有一个这样的数据框:
A B
1: 'a' 'aa'
2: 'b' NaN
3: 'c' NaN
4: 'd' 'dd'
我已经创建了一个列表:
lst=[]
如果column A
的值为list
,我希望将Column B
中的值附加到此NaN
,在这种情况下也称为['b','c']
。
循环确实有效,但有一种优雅的方式(例如使用lambdas)吗?
谢谢!
答案 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