在数据框中查找和替换部分字符串?

我目前有两个从需要加入的 CSV 文件中提取的数据框。问题在于连接列不匹配并且我必须处理许多文件,因此在 excel 中手动清理不是可选的。


这是我正在使用的...


DF1


ID     Title      HIF

1      A          HIF-1101

2      AB         HIF-1102

DF2


HIF               Date      Type

HIF-1101 CD42     01/12/19  Image

HIF-1102 JH96     01/14/19  Image

我需要消除 DF2 中额外的字母/数字组合。连接列中的所有行(有几千行)在“HIF-XXXX”中使用相同的数字格式。也许有一种方法可以找到“HIF”,然后在右侧索引 5 个字符?


繁花如伊
浏览 191回答 3
3回答

RISEBY

使用str.extract提取模式HIF-\w{4}从df2['HIF'],那么你可以合并df1,并df2在“HIF”在一起。df1.merge(df2.assign(HIF=df2['HIF'].str.extract(r'(HIF-\w{4})')), on='HIF')   ID Title       HIF      Date   Type0   1     A  HIF-1101  01/12/19  Image1   2    AB  HIF-1102  01/14/19  Image

慕雪6442864

您可以使用 pandas.Series.str.slicedf2['HIF'] = df2['HIF'].str.slice(stop=-5)print(df2)        HIF      Date   Type0  HIF-1101  01/12/19  Image1  HIF-1102  01/14/19  Image然后合并df_merge = pd.merge(df1, df2, on='HIF')print(df_merge)   ID Title       HIF      Date   Type0   1     A  HIF-1101  01/12/19  Image1   2    AB  HIF-1102  01/14/19  Image

慕容708150

我在用 str.finddf2.HIF=df2.HIF.str.findall('|'.join(df1.HIF.tolist())).str[0]df1.merge(df2,on='HIF')Out[73]:    ID Title       HIF      Date   Type0   1     A  HIF-1101  01/12/19  Image1   2    AB  HIF-1102  01/14/19  Image
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python