为DataFrame中numpy.int64类型的b列数值添加前缀141
给DataFrame数值列添加固定前缀
没问题,这事儿有两种实用的方法,你可以根据场景选:
方法1:字符串拼接法(通用型,适配任意位数的原数值)
这种方法不管你的b列数值是几位都能生效,核心思路是先把数值转成字符串,拼接前缀后再转回整数类型,完美保留你需要的numpy.int64类型:
import pandas as pd import numpy as np # 先构造你给出的示例DataFrame df = pd.DataFrame({ 'a': ['mark', 'john', 'jack', 'harry', 'jacob'], 'b': np.array([50, 60, 30, 80, 10], dtype=np.int64) }) # 执行前缀添加操作 df['b'] = ('141' + df['b'].astype(str)).astype(np.int64)
执行后b列就会变成14150、14160、14130、14180、14110,完全符合你的需求。
方法2:数学运算(适合原数值位数固定的场景)
如果你的b列数值都是固定位数(比如这里都是两位),用数学计算的方式效率会更高:
# 基于示例DataFrame执行操作 df['b'] = 141 * 100 + df['b']
原理很直观:把前缀141放大100倍(对应原数的两位长度),再加上原数值,就相当于把141“贴”在了原数的前面。
最终效果
处理后的DataFrame如下:
| a | b |
|---|---|
| mark | 14150 |
| john | 14160 |
| jack | 14130 |
| harry | 14180 |
| jacob | 14110 |
内容的提问来源于stack exchange,提问作者user12157180
相关产品推荐
相关产品推荐

