【发布时间】:2017-07-27 20:21:52
【问题描述】:
我有一个单词列表 ['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]})
但是,这会为每个关键字生成单独的数据框。任何帮助表示赞赏。
【问题讨论】:
标签: python python-3.x pandas dataframe