gpt4 book ai didi

python - 在不使用循环的情况下,使用来自单独 DataFrame 的编码数据向 Pandas DataFrame 添加一个新列?

转载 作者:太空宇宙 更新时间:2023-11-04 01:29:12 24 4
gpt4 key购买 nike

我遇到的问题是我有一个大型数据框(约 300,000 行),每个主题的多行表示不同条件下的给定值。简化版如下所示:

In [12]: df1
Out[12]:
SubID Condition Value
0 1 1 0.123
1 1 2 0.234
2 2 1 0.345
3 2 2 0.456
4 3 1 0.567
5 3 2 0.678
6 4 1 0.789

我还有第二张表,其中只有 80 行奇数行,其中包含受试者所属的遗传组。

我想将该数据添加到第一个 DataFrame。简化版的编码表如下所示:

In [17]: df2
Out[17]:
Subject Number Genetic Group
0 1 A
1 2 C
2 3 A
3 4 B

我想要结束的是:

In [19]: df1
Out[19]:
SubID Condition Value Genetic Group
0 1 1 0.123 A
1 1 2 0.234 A
2 2 1 0.345 C
3 2 2 0.456 C
4 3 1 0.567 A
5 3 2 0.678 A
6 4 1 0.789 B

我可以使用 for: 循环,但想知道是否有一种方法使用任何 Pandas DataFrame 合并或连接操作来避免这种情况?非常感谢,

最佳答案

您可以通过 SubID 进行索引,然后使用 join 来获取您想要的内容:

df1.set_index("SubID", inplace=True)
df2.set_index("Subject Number", inplace=True)
df3 = df1.join(df2, how="left")

或者,您可以使用 merge 来完成而无需索引:

df3 = df1.merge(df2, left_on="SubID", right_on="Subject Number", how="left")

关于python - 在不使用循环的情况下,使用来自单独 DataFrame 的编码数据向 Pandas DataFrame 添加一个新列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15226956/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com