熊猫iterrows将字符串转换为时间戳

时间:2020-04-06 16:32:02

标签: python python-3.x pandas

我正在尝试基于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)

0 个答案:

没有答案