。问题在于join列不匹配,并且有许多文件需要处理,所以在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个字符?

最佳答案

使用str.extractHIF-\w{4}中提取模式,然后可以在“HIF”上将df2['HIF']df1合并在一起。

df1.merge(df2.assign(HIF=df2['HIF'].str.extract(r'(HIF-\w{4})')), on='HIF')

   ID Title       HIF      Date   Type
0   1     A  HIF-1101  01/12/19  Image
1   2    AB  HIF-1102  01/14/19  Image

关于python - 在数据框中查找并替换部分字符串?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55345428/

10-09 15:05