python - 对 pandas 数据框中相互依赖的多个参数进行索引

标签 python pandas

假设我有一个 pandas 数据框和一个字典,定义如下:

import pandas as pd df = pd.DataFrame( { "c1": np.array(['a','a','b','b','a']) , "c2" : np.array([1,2,2,2,2])} )

  c1  c2
0  a   1
1  a   2
2  b   2
3  b   2
4  a   2

to_keep = {'a':[1],'b':[2,3]}

{'a': [1], 'b': [2, 3]}

我想保留那些键和 to_keep 值之一所在的元素是真的。换句话说,我想获得以下数据框:

  c1  c2
0  a   1
2  b   2
3  b   2

我尝试过很多事情,例如 df[(df["c1"] in to_keep.keys) and df["c2"] in to_keep["c1"]] ,但问题是我无法将正确的参数传递给 to_keep 字典以获得适当的值。我想过列出 c1 所有可能的组合和c2 ,但是对于我拥有的数据集的大小来说,这可能有点低效。

有什么建议吗?

最佳答案

尝试在数据框中转换 to_keep ,然后将其与原始数据合并,如 Compare Python Pandas DataFrames for matching rows 中所示

关于python - 对 pandas 数据框中相互依赖的多个参数进行索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34338177/

相关文章:

python - Flask-socketio 在后台线程中复制文件时丢失事件

Java运行包含while循环的python文件

Python - iterrows 的替代解决方案

Python Pandas - 将数据框转换为 json

python - 仅选择包含特定字符串的列名称

python - 如何在 sqlalchemy 中编写自己的方言以适应 HTTP API?

python - reshape pandas 数据框 : New row for every 76 entries

python - Python中的词频分析返回字母频率

python - 我如何使用 Pandas 计算加权移动平均线

python - 以特定格式转换列的值