首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否将一个df中的列值与另一个特定格式的df的列值进行匹配?

是否将一个df中的列值与另一个特定格式的df的列值进行匹配?
EN

Stack Overflow用户
提问于 2020-05-18 14:17:29
回答 1查看 45关注 0票数 0

df1

代码语言:javascript
复制
Model              Version

ANALYST7000         8.2.1.0
ANALYSTMM           4.5.6.4
PA-500              4.56.67
PA-4000             8.7.89
PA-5000             9.0.5.6
PA-7000             4.5.6.7

df2

代码语言:javascript
复制
Model

ANALYST7245
ANALYST7200XM
ANALYSTMM
PA-570
PA-5460
PA-5790
PA-7000

输出

代码语言:javascript
复制
ANALYST7245      8.2.1.0
ANALYST7200XM      8.2.1.0
ANALYSTMM          4.5.6.4
PA-570            4.56.67
PA-5460           9.0.5.6
PA-5790           9.0.5.6
PA-7000           4.5.6.7

我有两个数据帧df1和df2我想要上面的输出,df中的模型匹配df2中的模型,如分析师那些落入七千以下的和PA落入五百,四千和很快类别的

EN

回答 1

Stack Overflow用户

发布于 2020-05-18 14:43:39

如果需要,将第一个数字后面的所有数字替换为0,然后通过第一个DataFrame映射列Model,使用:

代码语言:javascript
复制
df2['Version'] = [f'{a}{b}{"0" * len(c)}' for a,b, c in df2['Model'].str.split('(\d)', n=1)]
print (df2)
          Model       Version
0  ANALYST72450  ANALYST70000 <- added 4 times 0 by length
1  ANALYST720XM  ANALYST70000
2        PA-570        PA-500
3       PA-5460       PA-5000
4       PA-5790       PA-5000
5       PA-7000       PA-7000

df2['Version'] = df2['Version'].map(df1.set_index('Model')['Version'])
print (df2)


          Model  Version
0  ANALYST72450      NaN <- not matched ANALYST7000 to ANALYST70000, so NaN
1  ANALYST720XM      NaN
2        PA-570  4.56.67
3       PA-5460  9.0.5.6
4       PA-5790  9.0.5.6
5       PA-7000  4.5.6.7
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61863471

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档