【发布时间】:2020-10-15 01:10:48
【问题描述】:
我有两个数据框,我想根据 start 的部分匹配来合并(在下面的示例中以 df1.A 开头的 df2.B 中的行,这些列的值是字符串,可以是任何长度)。
我可以通过以下方式做到这一点,但在我的实际数据帧上非常慢,每个数据帧都有数百万行。
df1 = pd.DataFrame({'A': ['a', 'b', 'cc']})
df2 = pd.DataFrame({'B': ['ar', 'd', 'ar'],
'C': ['x1', 'x1', 'x2']})
df_m = pd.DataFrame(columns=['A','B','C'])
for index, row in df1.iterrows():
df_ = df2[df2['B'].str.startswith(row['A'])]
if not df_.empty:
df_['A'] = row['A']
df_m = df_m.append(df_)
df_m:
A B C
0 a ar x1
2 a ar x2
【问题讨论】:
标签: python pandas string join merge