Python 循环遍历具有相同列标题的两个数据帧,以根据多个条件查找相似的行

Python 循环遍历具有相同列标题的两个数据帧,以根据多个条件查找相似的行,python,python-3.x,pandas,Python,Python 3.x,Pandas,我正在研究一年比一年不同十字路口的交通情况。一个文件包含2017年10月至12月的信息,另一个文件包含2018年1月至10月的信息。我想比较2017年10月和2018年10月的数据点。唯一的问题是这些文件没有所有相同的条目。目前,datetime的格式为2018-10-30 18:15:00,因此我需要找到与之完全相同的匹配项,除了年份的第四位数字(2017年与2018年),它们还需要与相应的交叉点名称值匹配。希望我能得到一个数据帧中的所有2017和2018行,每个数据帧中都有两个条目(一个来自

我正在研究一年比一年不同十字路口的交通情况。一个文件包含2017年10月至12月的信息,另一个文件包含2018年1月至10月的信息。我想比较2017年10月和2018年10月的数据点。唯一的问题是这些文件没有所有相同的条目。目前,datetime的格式为2018-10-30 18:15:00,因此我需要找到与之完全相同的匹配项,除了年份的第四位数字(2017年与2018年),它们还需要与相应的交叉点名称值匹配。希望我能得到一个数据帧中的所有2017和2018行,每个数据帧中都有两个条目(一个来自2017和2018,用于同一个交叉点)

我尝试过很多方法,包括“合并”技术,其中“on”列位于“intersection”和“date”上,但这只会创建比我需要的更多的列,最终并不能解决问题。我已经将两个CSV分解,因此它们只包括10月份,并尝试在“day”和“Crossion_name”上匹配,但这也不起作用

import pandas as pd
import re
import csv
import datetime

#read files in
df1 = pd.read_csv('detailed-traffic-pedestrian-volumes-2017.csv') 
df2 = pd.read_csv('detailed-traffic-pedestrian-volumes-2018.csv')
df1['datetime_bin'] = pd.to_datetime(df1['datetime_bin'])
df2['datetime_bin'] = pd.to_datetime(df2['datetime_bin'])

df1.rename(columns={'sum': 'volume'}, inplace=True)

df1['year'] = pd.DatetimeIndex(df1['datetime_bin']).year
df1['month'] = pd.DatetimeIndex(df1['datetime_bin']).month
df1['day'] = pd.DatetimeIndex(df1['datetime_bin']).day


df2['year'] = pd.DatetimeIndex(df2['datetime_bin']).year
df2['month'] = pd.DatetimeIndex(df2['datetime_bin']).month
df2['day'] = pd.DatetimeIndex(df2['datetime_bin']).day

df1 = df1.loc[(df1['month'] == 10) & (df1['classification'] == 
'Bicycles')]
df2 = df2.loc[(df2['month'] == 10) & (df2['classification'] == 
'Bicycles')] # days are listed as YYYY-MM-DD

common = df1.merge(df2,how = 'inner', on= 
['intersection_name','day'])
print(common.head())

我正在寻找的东西,输出所有的行在10月为两年,以便我有一些比较它。i、 e.相同时间,不同年份和相同交点值除外。上面的代码给我留下了过多的列,我相信还有其他问题。能够调整天数的额外积分,这样我就可以比较星期五和星期五,而不仅仅是10月10日和10月10日。我的尝试肯定有问题。理想情况下,我希望保留完整的datetime作为索引,而不必将其拆分为几天来查找匹配项

欢迎来到Stackoverflow。请参考此链接,了解如何提问,以获得更好的回答。您可以发布数据帧的某些部分来表示输入和预期输出吗