我喜欢将部分字符串从字典键映射到类似这样的序列:
df = pd.DataFrame(np.random.randint(0,10,size=(5, 1)), columns=list('A'))
df.insert(0, 'n', ['abcde Germany fffe','aaaa Norway bbbb',
'tttt Sweden','Croatia dfdfdf','Italy sfsd'])
>>> df
n A
0 abcde Germany fffe 2
1 aaaa Norway bbbb 1
2 tttt Sweden 4
3 Croatia dfdfdf 1
4 Italy sfsd 2
d = {'Germany':0.5, 'Croatia':1.5, 'Italy':1.5}
现在我想将d的键映射到n列,以匹配部分字符串并设置倍数。我通过一个难看的循环实现了这一点:
^{pr2}$我有更好更通俗的方法吗?谢谢!在
这就是我想到的
解决方案
演示
打印数据框
^{pr2}$说明
pat
看起来像r'(Croatia|Italy|Germany)'
,这是一个正则表达式,它与()
中由'|'
分隔的任何选项匹配。当在str.extract
方法中使用时,它返回匹配的国家。然后运行apply
来获取字典值。并不是所有的序列值都会被dict中的键匹配,所以我们必须dropna
然后fillna
稍后。在相关问题 更多 >
编程相关推荐