我有一个字典,其中的值需要添加到数据框中的列中。字典看起来像这样:
{1:123, 2:345, 3:678}
,数据框的列如下所示:
col1
1
2
3
我想要这个结果:
col1
1123
2345
3678
这是我正在使用的代码(替换功能)
file['col1'] = file['col1'].replace(dict)
但是遗憾的是replace()删除了第1列中的值。
答案 0 :(得分:2)
使用Series.astype
强制转换为str
和Series.map
-您可以使用+
来以这种方式连接字符串
df['col1'].astype(str) + df['col1'].map(d).astype(str)
[出]
0 1123
1 2345
2 3678
Name: col1, dtype: object
如果有必要回退为int
类型,请使用:
(df['col1'].astype(str) + df['col1'].map(d).astype(str)).astype(int)
答案 1 :(得分:1)
将col1数字乘以col2中的10 * number_of_digits个数字并将其添加到col2
例如:
col1 = 1和col2 = 123
col2中的数字位数为3
所以col1 = col1 * 10 * 3
现在col1 = col1 + col2
如果col2的所有数字都具有相同的长度,则无需分别查找每个数字的长度,只需将10乘以常数即可,然后如上所述进行加法。