【发布时间】:2020-06-15 16:29:06
【问题描述】:
我有一个 df:
df =
c1 c2 c3 c4 c5
0 K 6 nan Y V
1 H nan g 5 nan
2 U B g Y L
还有一个字符串
s = 'HKg5'
我想返回 s[0]=c1 的值,s[1]=c2 的值,..... + 在某些情况下 s[i]=nan 的行。
例如上面df中的第1行与字符串匹配
row 1=
c1 c2 c3 c4 c5
1 H nan g 5 nan
match=True, regardless of s[1,4]=nan
s = H K g 5
而且字符串长度是动态的,所以我的 df cols 高于 c10
我正在使用 df.apply,但我无法弄清楚。我想写一个函数传给df.apply,同时传递字符串。
感谢您的帮助!
克里斯的回答输出
df=
c1 c2 c3 c4 c5
0 K 6 NaN Y V
1 H NaN g 5 NaN
2 U B g Y L
s = 'HKg5'
s1 = pd.Series(list(s), index=[f'c{x+1}' for x in range(len(s))])
df.loc[((df == s1) | (df.isna())).all(1)]
输出
`c1 c2 c3 c4 c5`
【问题讨论】:
标签: python pandas numpy data-structures data-science