gpt4 book ai didi

python - 与 Pandas 合并的更简洁的方法

转载 作者:太空宇宙 更新时间:2023-11-03 18:11:13 25 4
gpt4 key购买 nike

假设我想合并两个数据框,df1(与列'a','b','c','z'一致)和df2由列('a','b','d', 'y'),一起。两个数据帧的“a”和“b”列包含相同的对应信息。通常我会执行以下操作来生成一个新的数据帧,其中“c”和“d”被分配给相应的“a”和“b”:

relevant_columns1 = ['a','b','c']
relevant_columns2 = ['a','b','d']
df3 = pd.merge(df1[relevant_columns1], df2[relevant_columns2])

但是,是否有一种不太详细的方法可以通过合并函数传递此信息,而不必将列标题放入列表格式?我的目标是生成一个新的数据框 df3,其中包含列“a”、“b”、“c”和“d”

最佳答案

你可以使用

pd.merge(df1, df2)[['a','b','c','d']]
<小时/>

默认pd.merge将根据所有共同共享的列进行合并。

In [71]: df1 = pd.DataFrame(np.arange(20).reshape((5, 4)), columns=list('abcz'))

In [72]: df2 = pd.DataFrame(np.arange(20).reshape((5, 4)), columns=list('abdy'))

In [79]: pd.merge(df1, df2)
Out[79]:
a b c z d y
0 0 1 2 3 2 3
1 4 5 6 7 6 7
2 8 9 10 11 10 11
3 12 13 14 15 14 15
4 16 17 18 19 18 19

然后您可以仅选择所需的列:

In [78]: pd.merge(df1, df2)[['a','b','c','d']]
Out[78]:
a b c d
0 0 1 2 2
1 4 5 6 6
2 8 9 10 10
3 12 13 14 14
4 16 17 18 18

所以 df3 = pd.merge(df1, df2)[['a','b','c','d']]不太详细,但它确实创建了一个更大的临时数据帧,因此您的方法可能会更节省内存,特别是在有很多不相关的列的情况下。

关于python - 与 Pandas 合并的更简洁的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25898090/

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