如何通过标识整数转换数据框列的每个值

问题描述 投票:2回答:1

我有以下数据框:

import pandas as pd
df = pd.DataFrame(dict(NoMatter=list(range(6)), Value=['a','b',7,7,'b','b']))
print(df)
   NoMatter Value
0         0     a
1         1     b
2         2     7
3         3     7
4         4     b
5         5     b

我想修改“值”列,例如它包含旧值所不同的整数。因此,在这里,我希望用1代替每个a,用2代替每个b,用3代替每个7。

预期结果:

   NoMatter  Value
0         0      1
1         1      2
2         2      3
3         3      3
4         4      2
5         5      2

我该怎么办?

python pandas converters
1个回答
3
投票

使用factorize

factorize

0
投票
df['Value'] = pd.factorize(df['Value'])[0] + 1
print (df)
   NoMatter  Value
0         0      1
1         1      2
2         2      3
3         3      3
4         4      2
5         5      2
© www.soinside.com 2019 - 2024. All rights reserved.