gpt4 book ai didi

python - 比较两个电子表格并提取值

转载 作者:太空宇宙 更新时间:2023-11-03 17:47:42 26 4
gpt4 key购买 nike

我有两个行数和列数不同的电子表格。

我想做的是比较两者,并从与 a2.xlsx 的列名称匹配的 a1.xlsx 中提取 A 和 B 的值,然后复制a2.xlsx 中 C 列和 D 列的值。我知道如何在 Excel 中使用 Index-Match 执行此操作,但不使用 Python 的 Pandas。

电子表格 1 (a1.xlsx)

Index   A   B   C
0 s 0.2 new york
1 d 1 vienna
2 g 2 london
3 c 3 tokyo
4 r 2 paris
5 d 1 berlin
6 a 8 madrid
7 f 10 seattle

电子表格 2 (a2.xlsx)

Index   A   B   C   D
0 dublin 34 x x
1 seoul 36 x x
2 london 12 x x
3 berlin 4 x x
4 tokyo 6 x x
5 seatte 22 x x

最佳答案

假设电子表格 1 已加载到 pandas df,电子表格 2 已加载到 df1,那么您可以从 merge 的结果中分配值。 :

In [20]:

df1[['C','D']] = df1.merge(df, left_on='A', right_on='C',how='left')[['A_y','B_y']]
df1
Out[20]:
A B C D
Index
0 dublin 34 NaN NaN
1 seoul 36 NaN NaN
2 london 12 g 2
3 berlin 4 d 1
4 tokyo 6 c 3
5 seattle 22 f 10

只是为了解释一下,当我们合并时,我们执行左合并,这会产生列冲突,因为我们有冲突的列名:

In [24]:

df1.merge(df, left_on='A', right_on='C',how='left')
Out[24]:
A_x B_x C_x D A_y B_y C_y
0 dublin 34 x x NaN NaN NaN
1 seoul 36 x x NaN NaN NaN
2 london 12 x x g 2 london
3 berlin 4 x x d 1 berlin
4 tokyo 6 x x c 3 tokyo
5 seattle 22 x x f 10 seattle

我们只对列 A_yB_y 感兴趣,我们执行左合并,因为如果我们执行默认合并类型“内部”,那么这将不会对齐与原始 df 相同,即值将移动到 df 的顶部。

关于python - 比较两个电子表格并提取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29550409/

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