python - Python Pandas:在整个数据框中搜索子字符串,然后输出找到子字符串的列的名称
问题描述
key_words_to_search = ['hello', 'goodbye']
df = pd.DataFrame({
'col1':['hello','hi','ciao'],
'col2':['hello panda','goodbye','bonjour'],
'col3':['ni hao','hola','hello']})
我一直在使用类似下面的东西,但不确定如何获取列的实际名称。谢谢!
mask = df.applymap(lambda x: word in str(word).lower())
temp = df[mask.any(axis=1)].copy()
解决方案
这是一种做法:
d = []
for k in key_words_to_search:
print(k)
i = df.applymap(lambda x: k in x)
i = i.astype(int).mask(i, i.columns.to_series(), axis=1).astype(str).agg(lambda x: ','.join(i for i in x if not i.isdigit()), 1)
d.append(i)
df[['hello','goodbye']] = pd.concat(d, axis=1)
print(df)
col1 col2 col3 hello goodbye
0 hello hello panda ni hao col1,col2
1 hello panda goodbye hola col1 col2
2 ni hao goodbye hello col3 col2
推荐阅读
- ssl - 是否可以将 Cloudflare TLS 证书用于不在 Internet 上的内部网站?
- javascript - 使用 req.query 查找所有对象 LIKE 字符串
- ios - 如何在 iOS 中实现纵向模式下的 SplitView 功能?
- swift - swift tvOS 垂直滚动网格
- javascript - 如何查找二维数组中两个坐标之间的所有元素
- android-viewmodel - 使用数据绑定时如何在viewModel.class中获取小部件的值(numberpick)
- wordpress-theming - 木材/树枝 + ACF - Wordpress
- wordpress - WordPress 端点插件显示 SyntaxError: JSON.parse
- reactjs - TypeError:未定义不是对象(评估'_ref.painLevelColor')
- numpy - 我可以使用 simpleaudio(或任何其他非 Windows 相关库)而不是 pyaudio 将流对象转换为 numpy 音频数据吗?