【发布时间】:2022-01-24 11:25:09
【问题描述】:
我有两个这样的 dfs:
我需要这样的最终输出:
从 df1 中搜索“unit”列并获取值(类型和版本),如果 df2 中的“unit”数据包含 df1 中的“unit”数据,则合并两个 dfs。
我尝试了几个代码,例如:
df['join'] = 1
df2['join'] = 1
dataFrameFull = df.merge(
df_sql, on='join').drop('join', axis=1)
df1.drop('join', axis=1, inplace=True)
dataFrameFull['match'] = dataFrameFull.apply(
lambda x: x.unit.find(x.unit), axis=1).ge(0)
但不起作用。
我也试过了:
variable = lambda x: process.extractOne(x, df["unit"])[2]
df2['type'] = df2.loc[df["unit"].map(best_city).values, 'type'].values
同样的结果。
【问题讨论】:
-
试试这个
df1.merge(df2, on='unit', how='left')。我建议您阅读有关pd.merge工作原理的文档。 pandas.pydata.org/docs/reference/api/… 另外,这里的做法是将数据粘贴为文本形式,而不是照片。
标签: python pandas dataframe lambda merge