PythonPands-在dataframe中查找子字符串,然后无循环求和
当前正在执行字符串相等PythonPands-在dataframe中查找子字符串,然后无循环求和,python,pandas,numpy,Python,Pandas,Numpy,当前正在执行字符串相等 df['Contains string'] = (df[columns] == 'myString').sum(axis=1) 我怎样才能做同样的事情,但是找到一个子字符串而不是一个完整的字符串,比如 df['Contains string'] = (df[columns].contains('myString')).sum(axis=1) 但这不起作用。还尝试了str.contains、series.index、series.find,因为未为数据帧实现使用: 或者
df['Contains string'] = (df[columns] == 'myString').sum(axis=1)
我怎样才能做同样的事情,但是找到一个子字符串而不是一个完整的字符串,比如
df['Contains string'] = (df[columns].contains('myString')).sum(axis=1)
但这不起作用。还尝试了str.contains、series.index、series.find
,因为未为数据帧实现使用:
或者使用第一级的sum
,谢谢@anky:
df['Contains string'] = df[columns].stack().str.contains('myString').sum(level=0)
或者,如果没有可能丢失的值,请在
中与一起使用:
df['Contains string'] = (df[columns].applymap(lambda x: 'myString' in x)).sum(axis=1)
另外,我更喜欢:df[columns].stack().str.contains('myString').sum(level=0)
df['Contains string'] = (df[columns].applymap(lambda x: 'myString' in x)).sum(axis=1)