gpt4 book ai didi

python - 数据框的子集,其中两列等于两个列表

转载 作者:行者123 更新时间:2023-12-03 21:41:31 24 4
gpt4 key购买 nike

我有多个数据框,每个数据框大约有 500 万行。每个数据框都有两列,分别称为 BC。此外,我还有两个值列表,其中第一个列表中的索引 0 对应于第二个列表中的索引 0。

我需要做的是获取完整数据框的一个子集,但两个列表中的值对于该特定索引都是真实的。

所以基本上:

df = 

A B C
------------------
val1 val2 val3
val4 val5 val6
val7 val8 val9


list1 = ["val2", "val8"]

list2 = ["val3", "val9"]

然后如果我使用这个:

df.loc[(df['B'] == "val2") & (df['C'] == "val3")]

然后这将返回:

df_new = 

A B C
------------------
val1 val2 val3

但我需要它为 list1list2 中的所有列表项执行此操作,因此生成的 df 应该是:

df_new = 

A B C
------------------
val1 val2 val3
val7 val8 val9

我正在考虑创建一个新列 (new_column) 和新列表 (new_list),两个列表名称连接在一起,然后运行:

df[df['new_column'].isin(new_list)]

但我有点担心,考虑到我必须对大约 500 万行和许多不同的数据帧执行此操作,这样效率很低。

是的,这有什么巧妙的技巧吗?

最佳答案

您可以使用列表(list1 和 list2)创建数据框并合并数据框:

u = pd.DataFrame({"B":list1,"C":list2})
df.merge(u)
#[df.merge(u) for df in df_list] for list

      A     B     C
0 val1 val2 val3
1 val7 val8 val9

关于python - 数据框的子集,其中两列等于两个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67269166/

24 4 0
文章推荐: python - 使用新方法动态包装任意类
文章推荐: jquery - 使用键盘时未触发