如何根据另一列将数字添加到一列? (字典)

时间:2019-07-02 10:54:17

标签: python pandas dataframe

我有一个字典,其中的值需要添加到数据框中的列中。字典看起来像这样:

{1:123, 2:345, 3:678}

,数据框的列如下所示:

col1 
1     
2
3

我想要这个结果:

col1
1123
2345
3678

这是我正在使用的代码(替换功能)

file['col1'] = file['col1'].replace(dict)

但是遗憾的是replace()删除了第1列中的值。

2 个答案:

答案 0 :(得分:2)

使用Series.astype强制转换为strSeries.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乘以常数即可,然后如上所述进行加法。