在两个xlsx文件之间查找相同的行(代码片段)

author author     2022-12-29     586

关键词:

我刚刚看到几个帖子,但我找不到解决方案。

我试图在Python中使用Pandas比较不同工作簿中的2个Excel文件。

WORK1:

A     B     C
1     1     1
2     2     2
3     3     3

WORK2:

A     B     C
1     1     1
2     5     2
3     3     3

欲望输出:

A     B     C
1     1     1

3     3     3

到目前为止,我得到的是:

import pandas as pd

df1 = pd.read_excel('/path/work1.xlsx')
df2 = pd.read_excel('/path/work2.xlsx')

common = df1[df1==df2]
print common
common.to_excel('/path/result.xlsx')

但我得到的是:

A     B     C
1     1     1
2           2
3     3     3

关键是如果work1的列B与work2有任何重合,则输出应该只是整行重合。

我正在使用NGS变体注释,因此分析变体共享的受影响家族将会很有帮助。

答案

您需要做的是编写条件以查找行中相等的所有列。截至目前,您生成的掩码与原始数据帧的形状相同,因此在编制索引时,您可以创建NaN而不是过滤。

选项1 使用eq + all -

df1[df1.eq(df2).all(axis=1)]

   A  B  C
0  1  1  1
2  3  3  3

请记住,在比较时,pandas会通过索引自动对齐数据帧,因此如果您的数据帧与索引或列不相同,则无法使用。如果是这种情况,则需要进行一些预处理。

df2.index = df1.index
df2.columns = df1.columns

现在,这(以及合并)应该工作。


选项2 所有列上的内部merge -

df1.merge(df2)

   A  B  C
0  1  1  1
1  3  3  3

unix命令查找两个文件中常见的行(代码片段)

我确定我曾经发现一个unix命令可以打印两个或多个文件中的公共行,有人知道它的名字吗?它比diff简单得多。答案你正在寻找的命令是comm。例如:-comm-121.sorted.txt2.sorted.txt这里:-1:禁止第1列(1.sorted.txt唯一的行)-2:抑制第2... 查看详情

php有限内存处理大文件(从两个文件提取相同行)(代码片段)

面试题:有两个文件文件,大小都超过了1G,一行一条数据,每行数据不超过500字节,两文件中有一部分内容是完全相同的,请写代码找到相同的行,并写到新文件中。PHP最大允许内内为256M。 解题步骤遇到此问题,首先先尝... 查看详情

找出具有相同形状的两个dataframe之间的差异(代码片段)

我试图找到两个具有行数的excel文件之间的差异。我首先想要在两列上对两个工作簿进行排序,然后输出具有差异的第三个文件。我无法正确导出差异文件。任何帮助都非常感谢!!!提前致谢!将pandas导入为pddf1=pd.DataFrame('ID':['3','3... 查看详情

vba-查找副本并比较其中哪一个最高(代码片段)

嘿我正在尝试过滤/匹配我的表单重复,我有两个标准:在(columnB)中的任何地方查找重复项,如果在(columnE)中与找到的重复项相同的行中设置了“适用”的重复项。在(columnB)中具有最高数量的(columnC)中的一个副本(数字在0-10之间... 查看详情

聚合具有两个或多个具有相同值的列的行(代码片段)

...带有agreggated信息的行)...是否有一种方法可以聚合具有两个或多个具有相同值的列的行并做了第三列的总和?表格示例:id|column1|column2|columntosum--------+---------+----------+-------------1|3|1|102|3 查看详情

比较两个excel文件并返回不常见的行

】比较两个excel文件并返回不常见的行【英文标题】:Comparetwoexcelfilesandreturnnoncommonrows【发布时间】:2021-07-1204:42:19【问题描述】:我有两个如下所示的excel文件-File1.xlsx文件2.xlsx我想比较每一行和每一列,并从两个文件中删除共... 查看详情

如何在两个相同的标记模式之间获取特定数据

】如何在两个相同的标记模式之间获取特定数据【英文标题】:Howtogetparticulardatabetweentwosamemarkerpatterns【发布时间】:2016-05-1316:31:17【问题描述】:使用awk或sed,我如何选择出现在两个相同标记模式之间的行?可能有多个部分标... 查看详情

使用pyspark查找csv文件中两个相同值之间不同值的计数

】使用pyspark查找csv文件中两个相同值之间不同值的计数【英文标题】:Findcountofdistinctvaluesbetweentwosamevaluesinacsvfileusingpyspark【发布时间】:2019-04-1906:59:41【问题描述】:我正在使用pyspark来处理超过50gb的大型CSV文件。现在我需要... 查看详情

BASH:在文本之间查找换行符并用两个换行符替换

】BASH:在文本之间查找换行符并用两个换行符替换【英文标题】:BASH:Findnewlinesinbetweentextandreplacewithtwonewlines【发布时间】:2020-04-1709:43:51【问题描述】:我希望以编程方式编辑.txt文件的换行符。所需的行为是文本行之间的任何... 查看详情

在列表中查找相同的行

...inthelist【发布时间】:2011-05-1813:42:45【问题描述】:我在文件电话.txt中有一个电话号码列表。该列表中有超过2000个电话号码。文件格式:每行包含一个电话号码。我需要找到所有相同(相同?)的电话号码。输出应该只包含列... 查看详情

如何在两个集合之间建立查找连接

】如何在两个集合之间建立查找连接【英文标题】:HowtoMakeaLookupconnectionbetweentwoCollection【发布时间】:2019-11-0213:20:41【问题描述】:目标:这个sql和它的结果应该和mongoDB的查询代码的结果是一样的。换句话说,结果相同,但对... 查看详情

python-查找两个文件中相同的ip地址(代码片段)

withopen("testt","r")asf1:list1=f1.readlines()print(list1)list1=set(list1)withopen("test2","r")asf2:list2=f2.readlines()print(list2)list2=set(list2)same_data=list1.intersection(list2)print(same_data)f 查看详情

BETWEEN Two Dates 返回相同两个日期的行,而不是返回之间的行

】BETWEENTwoDates返回相同两个日期的行,而不是返回之间的行【英文标题】:BETWEENTwoDatesisReturningRowsoftheSameTwoDatesinsteadoftheOnesBetween【发布时间】:2020-06-0318:18:56【问题描述】:我正在尝试选择两个特定日期之间的行,但我得到的... 查看详情

不要同时在两个线程之间共享相同的套接字(代码片段)

...保每个线程每次都在不同的套接字上工作,所以我不想在两个线程之间共享相同的套接字。在我的SocketManager类中,我有一个后台线程,每60秒运行一次并调用updateLiveSockets()方法。在updateLiveSockets()方法中,我迭代我拥有的所有套... 查看详情

grep:memory在比较两个文件以查找delta时耗尽(代码片段)

...我将file1与file2进行比较,并且将在output_file中创建差异(两个文件之间的增量)。我使用以下命令来找到差异:grep-v-F-f<file1><file2>><output_file>当我比较大小约22MB的文件时,我收到以下错误:grep:memoryexhausted当我比... 查看详情

如何避免两个不同的线程从db中读取相同的行(hibernate和oracle10g)(代码片段)

假设我有两个不同的线程,T1和T2,同时访问同一个数据库并从同一个表中获取数据。现在在线程启动时,我需要从表中获取数据并将行存储到一个集合中,然后我将用它来执行其他工作。我不希望这两个线程能够处理相同的数... 查看详情

在 txt 文件中的不同列中取两个特定值之间的行 [关闭]

】在txt文件中的不同列中取两个特定值之间的行[关闭]【英文标题】:Takelinesbetweentwospecificvaluesfromdifferentcolumnsinatxtfile[closed]【发布时间】:2021-06-2810:22:31【问题描述】:如何从.t​​xt文件中获取不同列的值之间包含的行?我有... 查看详情

欢迎使用excel汇总软件(代码片段)

... 6.合并工作表的列数据本项功能可以根据关键列合并两个工作表的列,并且不要求两个工作表的行按照顺序一一对应,程序可以根据关键列的值自动匹配对应行,然后把两个 查看详情