我有一个单词列表['light'、'medium'、'heavy'],我正在尝试隔离多个数据帧中可能出现这些单词的列。数据帧:
df1
1 | 2 | 3 | 4 | 5 | REF
'light' 'medium' 'heavy' 2c17
26 42 15 2c17
32 52 19 2c17
24 37.9 10 2c17
df2
1 | 2 | 3 | 4 | 5 | REF
21 23 2c16
'medium' 'heavy' 2c16
52 19 2c16
37.9 10 2c16
df3
1 | 2 | 3 | 4 | 5 | REF
'light' 3c16
21 3c16
22 3c16
23 3c16
基本上,如果列包含列表中的一个单词,则将其隔离。期望输出:
df1
2 | 3 | 4 | REF
'light' 'medium' 'heavy' 2c17
26 42 15 2c17
32 52 19 2c17
24 37.9 10 2c17
df2
| 3 | 4 | REF
21 23 2c16
'medium' 'heavy' 2c16
52 19 2c16
37.9 10 2c16
df3
1 | REF
'light' 3c16
21 3c16
22 3c16
23 3c16
到目前为止,我的代码中sh1是数据帧列表:
listofnewdf = []
for num in range(len(sh1)):
for i in range(len(sh1[num].columns)):
if pd.Series.any(sh1[num].iloc[:,i].str.contains(pat="light|medium|heavy")):
listofnewdf.append(pd.DataFrame({sh1[num].columns[i]:sh1[num].iloc[:,i],sh1[num]})
但是,这会为每个关键字生成单独的数据帧。感谢您的帮助
可以将
df.isin
与布尔索引一起使用:相关问题 更多 >
编程相关推荐