我有两个数据框。数据框 A 有一个由listids(命名项)值组成的列。数据框 B 有一列intids 值(名为 id)。
数据框A:
date | items
2019-06-05 | [121, 123, 124]
2019-06-06 | [109, 125]
2019-06-07 | [108, 126]
Run Code Online (Sandbox Code Playgroud)
数据框B:
name | id
item1 | 121
item2 | 122
item3 | 123
item4 | 124
item5 | 125
item6 | 126
Run Code Online (Sandbox Code Playgroud)
我想过滤 Dataframe A 并仅保留items该行中所有值都存在于idDataframe B 列中的行。
根据上面的例子,结果应该是:
数据框C:
date | items
2019-06-05 | [121, 123, 124]
Run Code Online (Sandbox Code Playgroud)
(因为数据框 B 没有 id==108 和 id==109 的行)
如果items是一int列,我可以使用:
date | items
2019-06-05 | [121, 123, 124]
2019-06-06 | [109, 125]
2019-06-07 | [108, 126]
Run Code Online (Sandbox Code Playgroud)
我怎样才能在list专栏中实现这一目标?
我们可以使用issubset
l=[set(x).issubset(dfb.id.tolist())for x in df['items']]
Out[64]: [True, False, False]
Run Code Online (Sandbox Code Playgroud)
然后
df=df[l]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4002 次 |
| 最近记录: |