gpt4 book ai didi

python - 如何从一个表中删除所有出现的数字,并从另一个表中查找数字?

转载 作者:行者123 更新时间:2023-12-04 20:51:31 24 4
gpt4 key购买 nike

我已经非常接近解决这个问题,但最终的结果总是缺少一些信息。

我想从查找文件中获取具有代码 ESBK022、ESBK023 或 ESBK024 的每个引用号,然后从主文件中删除该引用号的每个实例。

在主文件中,没有重复的引用编号,因为显示代码仅出现在查找文件中。

这是我想要完成的事情:

主文件:

REFERENCE NUMBER     DISPLAY CODE
1922 ESBK022
1923 ESBK023
1924 ESBK022
1925 ESBK024
1922 IATL123
1922 AUXT876

查找文件:
REFERENCE NUMBER
1922
1923
1924
1925
1926
1927

最后结果:
REFERENCE NUMBER
1926
1927

这是我的代码:
import pandas as pd


excel1 = 'desktop/lookup.xlsx'
excel2 = 'desktop/mainfile.xlsx'

#Delete top 3 blank rows of main file and last two summary rows
df1 = pd.read_excel(excel1, header=3)
df1 = (df1[:-2])

df2 = pd.read_excel(excel2)


#finds all reference numbers that have the ESBK code
has_code = df1[(df1['DISPLAY CODE'] == 'ESBK022') | (df1['DISPLAY CODE'] == 'ESBK023')
| (df1['DISPLAY CODE'] == 'ESBK024')]

这部分我玩了很多。现在这只会导致表格仅显示具有 ESBK 代码的引用编号,而不是相反。
#copies merged table layout to setup concatenation
merge_codes = pd.merge(has_code, df2, on="REFERENCE NUMBER")

merge_codes.to_excel('Desktop/ExcelTest.xlsx',sheet_name='DATA', index=False)

最佳答案

利用:

l=df1.loc[df1['DISPLAY CODE'].isin(['ESBK022','ESBK023','ESBK024']),'REFERENCE NUMBER'].tolist()
df2[~df2['REFERENCE NUMBER'].isin(l)]

输出:
   REFERENCE NUMBER
4 1926
5 1927

关于python - 如何从一个表中删除所有出现的数字,并从另一个表中查找数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59185620/

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