python - 检查 10 个不同集合之间的共同元素

标签 python pandas dataframe

这里我有 18 个数据框,每个数据框都是这样的

       Probe Set ID Call Codes filename
0       AX-11086525         AA   DG2364
1       AX-11086526         BB         
2       AX-11086527         BB         
3       AX-11086528         BB         
4       AX-11086529         AB         
...             ...        ...      ...
587347  AX-11714992         BB         
587348  AX-11714995         AA         
587349  AX-11714996         BB         
587350  AX-11714997         AA         
587351  AX-11714998         AA         

[587352 rows x 3 columns]

我将所有这些数据帧存储在名为 dfs 的字典中, 我想保留所有 18 个数据帧中常见的探针集 ID 的所有行。 我尝试使用带有按位和的集合来查找共同的项目。

common_items = set(dfs['df_1']) & set(dfs['df_2']) & set(dfs['df_3'])...
for i in dfs.keys():
    dfs[i] = dfs[i][dfs[i].isin(common_items)]

这导致了一个空数据框,我显然知道这是不正确的

       Probe Set ID Call Codes filename
0               NaN        NaN      NaN
1               NaN        NaN      NaN
2               NaN        NaN      NaN
3               NaN        NaN      NaN
4               NaN        NaN      NaN
...             ...        ...      ...
587347          NaN        NaN      NaN
587348          NaN        NaN      NaN
587349          NaN        NaN      NaN
587350          NaN        NaN      NaN
587351          NaN        NaN      NaN

[587352 rows x 3 columns]

请帮忙

最佳答案

set.intersection

我们可以使用set.intersection从所有数据帧中查找Probe Set ID列中的通用ID,然后在dict理解中迭代关键数据帧对并查询dataframe以使用common_ids过滤行。

common_ids = set.intersection(*[set(df['Probe Set ID']) for df in dfs.values()])
dfs = {k: df.query('`Probe Set ID` in @common_ids') for k, df in dfs.items()}

关于python - 检查 10 个不同集合之间的共同元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67150633/

相关文章:

python - 在groupby Python后查找配对记录

python - 查找大型数据集中两个日期之间是否有假期?

python - 在 Pandas 数据框中查找唯一值,无论行或列位置如何

python - 处理巨大的 pandas 数据框

python - pandas:来自 dict 的数据帧,带有逗号分隔值

python - 如何使用多列的值计数按组汇总 pandas DataFrame?

python - 清理坏行的 Postgres 表

python - 如何在 Tensorflow 中对 LSTM 应用正则化?

python - heroku无法安装zbar

python - Django 返回无效的 ajax 响应