[英]How to compare two dataframes in pandas
我有两个数据框:
第一个有 n 行名称。
第二个有 n 行名称。
对于第一个 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.