为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

繁花如伊 2021-12-16 15:54:13
我目前有两个从需要加入的 CSV 文件中提取的数据框。问题在于连接列不匹配并且我必须处理许多文件,因此在 excel 中手动清理不是可选的。这是我正在使用的...DF1ID     Title      HIF1      A          HIF-11012      AB         HIF-1102DF2HIF               Date      TypeHIF-1101 CD42     01/12/19  ImageHIF-1102 JH96     01/14/19  Image我需要消除 DF2 中额外的字母/数字组合。连接列中的所有行(有几千行)在“HIF-XXXX”中使用相同的数字格式。也许有一种方法可以找到“HIF”,然后在右侧索引 5 个字符?
查看完整描述

3 回答

?
RISEBY

TA贡献1856条经验 获得超5个赞

使用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   Type

0   1     A  HIF-1101  01/12/19  Image

1   2    AB  HIF-1102  01/14/19  Image


查看完整回答
反对 回复 2021-12-16
?
慕雪6442864

TA贡献1812条经验 获得超5个赞

您可以使用 pandas.Series.str.slice


df2['HIF'] = df2['HIF'].str.slice(stop=-5)

print(df2)

        HIF      Date   Type

0  HIF-1101  01/12/19  Image

1  HIF-1102  01/14/19  Image

然后合并


df_merge = pd.merge(df1, df2, on='HIF')

print(df_merge)

   ID Title       HIF      Date   Type

0   1     A  HIF-1101  01/12/19  Image

1   2    AB  HIF-1102  01/14/19  Image


查看完整回答
反对 回复 2021-12-16
?
慕容708150

TA贡献1831条经验 获得超4个赞

我在用 str.find


df2.HIF=df2.HIF.str.findall('|'.join(df1.HIF.tolist())).str[0]

df1.merge(df2,on='HIF')

Out[73]: 

   ID Title       HIF      Date   Type

0   1     A  HIF-1101  01/12/19  Image

1   2    AB  HIF-1102  01/14/19  Image


查看完整回答
反对 回复 2021-12-16
  • 3 回答
  • 0 关注
  • 190 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号