繁体   English   中英

如何比较 pandas 中的两个数据帧

[英]How to compare two dataframes in pandas

我有两个数据框:

  • 第一个有 n 行名称。

  • 第二个有 n 行名称。

对于第一个 dataframe 中的每个名称:

  • 看看它在第二个 dataframe 中出现了多少次。

代码看起来像这样:

df5 = pd.read_excel(item1, usecols="B",skiprows=6)
df10 = pd.read_excel('SMR4xx_Change_situation.xlsm', sheet_name='LoPN',usecols='D', skiprows=4)

除了第一个数据库中的名称,我如何计算名称出现在第二个数据库和 output 中的次数?

例如:数据库中的第一个名字是 John。 约翰出现在第二个 dataframe 4 次 => output 约翰 4

要么在控制台中打印它,要么在一个单独的 excel 文件中写入第一个数据库,并在第二列中写入出现次数。

任何事情都会有所帮助。

好吧,您可以为您正在寻找的记录创建一个数据框。 您可以首先在第一个 dataframe 中获取唯一名称列表,例如

uniqueNames = df5['B'].unique()  # Assuming column B contains the names

dfCount = pd.DataFrame(columns=['name', 'count'])

现在您可以遍历第一个 dataframe 中的每个唯一名称,并与第二个 dataframe 进行比较,如下所示:

for eachName in uniqueNames:
    dfCount = dfCount.append({'name':eachName, 
                              'count':(df10['D'] == eachName).sum()}, 
                              ignore_index=True)  # Assuming you need to compare with column D

或者,如果您希望计数出现在第一个数据库中,这样的事情应该可以工作

import numpy as np
df10['counts'] = np.nan
df10['counts'] = np.select([dfCount['name']==df5['B']], [dfCount['count']], np.nan)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM