这是我的 df.
我想获取包含 (F)
>>> d = {0: ['1', '2(F)', '6', '8', '5'],
1: ['8(F)', '6', '8', '4(F)', '4'],
2: ['1', '6', '8(F)', '4(F)', '5'],
3: ['1', '8', '8', '1', '5']}
>>> df = pd.DataFrame(data=d)
>>> df
0 1 2 3
0 1 8(F) 1 1
1 2(F) 6 6 8
2 6 8 8(F) 8
3 8 4(F) 4(F) 1
4 5 4 5 5
结果应该是这样的
0 2(F)
1 8(F)
2 8(F)
3 NaN
但是当我使用下面的代码时,我收到了一些错误
>>> mask = df.apply(lambda x: x.str.contains('F'))
>>> a = mask.idxmax().where(mask.any())
>>> print(df[a])
KeyError: '[nan] not in index'
最佳答案
这是一种方式
mask = df.applymap(lambda x: '(F)' in x)
df[mask].bfill().iloc[0,]
Out[624]:
0 2(F)
1 8(F)
2 8(F)
3 NaN
Name: 0, dtype: object
关于python - 获取每列中的第一个出现值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57077508/