用 pandas 中的数字替换列中的多个字符串值
Replacing multiple string values in a column with numbers in pandas
我目前正在 pandas 中处理名为 df
的数据框。一栏包含
多个标签(确切地说,超过 100 个)。
我知道当值较少时如何替换值。
例如,在典型的泰坦尼克号示例中:
titanic.Sex.replace({'male': 0,'female': 1}, inplace=True)
当然,对 100+ 个值执行此操作将非常耗时。我见过类似的问题,但所有答案都涉及输入数据。有更快的方法吗?
我想你在找 factorize
:
df = pd.DataFrame({'col': list('ABCDEBJZACA')})
df['factor'] = df['col'].factorize()[0]
输出:
col factor
0 A 0
1 B 1
2 D 2
3 C 3
4 E 4
5 B 1
6 J 5
7 Z 6
8 A 0
9 C 3
10 A 0
我目前正在 pandas 中处理名为 df
的数据框。一栏包含
多个标签(确切地说,超过 100 个)。
我知道当值较少时如何替换值。
例如,在典型的泰坦尼克号示例中:
titanic.Sex.replace({'male': 0,'female': 1}, inplace=True)
当然,对 100+ 个值执行此操作将非常耗时。我见过类似的问题,但所有答案都涉及输入数据。有更快的方法吗?
我想你在找 factorize
:
df = pd.DataFrame({'col': list('ABCDEBJZACA')})
df['factor'] = df['col'].factorize()[0]
输出:
col factor
0 A 0
1 B 1
2 D 2
3 C 3
4 E 4
5 B 1
6 J 5
7 Z 6
8 A 0
9 C 3
10 A 0