根据python pandas列搜索并复制粘贴两个数据表

umuewwlo  于 2022-12-28  发布在  Python
关注(0)|答案(1)|浏览(146)

第一个excel工作表

A   C   D   id
0   foo 10  9   1
1   bar 10  8   2
2   foo 10  7   3
3   bar 30  6   4
4   foo 50  5   5
5   bar 60  4   6
6   fo 50  3   7
7   fool 8   2   8

第二张excel表格

id   A   C   
0    1      
1    6         
2    7      
3    8

现在,通过匹配(搜索)id(id==id),我们必须复制列A和C,并将其粘贴到第二个Excel工作表的A和C中
结果

id   A    C   
0    1   foo   10   
1    6   bar   60   
2    7   fo    50
3    8   fool  8

现在,通过匹配(搜索)id(id==id),我们必须复制列A和C,并将其粘贴到第二个Excel工作表的A和C中
结果

id   A    C   
0    1   foo   10   
1    6   bar   60   
2    7   fo    50
3    8   fool  8
igsr9ssn

igsr9ssn1#

您可以使用pandas.mergehttps://pandas.pydata.org/docs/reference/api/pandas.DataFrame.merge.html)执行此操作,如下所示:

import numpy as np
import pandas as pd

df1 = pd.DataFrame({
    'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'fo', 'fool'],
    'C': [10, 10, 10, 30, 50, 60, 50, 8],
    'D': [9, 8, 7, 6, 5, 4, 3, 2],
    'id': [1, 2, 3, 4, 5, 6, 7, 8],
})
print(df1)
"""
      A   C  D  id
0   foo  10  9   1
1   bar  10  8   2
2   foo  10  7   3
3   bar  30  6   4
4   foo  50  5   5
5   bar  60  4   6
6    fo  50  3   7
7  fool   8  2   8
"""
df2 = pd.DataFrame({
    'id': [1, 6, 7, 8],
    'A': [np.NAN, np.NAN, np.NAN, np.NAN],
    'C': [np.NAN, np.NAN, np.NAN, np.NAN]
})
print(df2)
"""
   id   A   C
0   1 NaN NaN
1   6 NaN NaN
2   7 NaN NaN
3   8 NaN NaN
"""
df3 = pd.merge(df1[['id', 'A', 'C']], df2['id'], how='inner', on='id')
print(df3)
"""
   id     A   C
0   1   foo  10
1   6   bar  60
2   7    fo  50
3   8  fool   8
"""

相关问题