我正在尝试基于iterrows合并两个数据框。由于某种原因,pandas认为某个字符串是一个时间戳。 我收到异常“ TypeError:第一个参数必须是已编译模式的字符串”。
使用read_sql读取数据。
数据帧的长度不同。
数据在迭代之前看起来还不错。
试图删除第二个条件,但它仍然会发生。
示例:17260514-> 1726-05-14 00:00:00,22230310-> 2223-03-10 00:00:00
df1['id'] = df1['id'].astype(str)
df1['date'] = pd.to_datetime(df1['date'], format='%d.%m.%y %H:%M:%S')
df2['id'] = df2['id'].astype(str)
matches = []
for i, r1 in df1.iterrows():
# the exception is thrown in this line
for j, r2 in df2[(df2['id'].str.contains(r1['id'])) & ((df2['date'] - r1['date']).dt.days <= 2)].iterrows():
t = r1.append(r2).to_frame().transpose()
matches.append(t)
merged_df = pd.concat(matches)