例如,如果我有一个 DataFrame df
day hour price booked
0 monday 7 12.0 True
1 monday 8 12.0 False
2 tuesday 7 13.0 True
3 sunday 8 13.0 False
4 monday 7 15.0 True
5 monday 8 13.0 False
6 tuesday 7 13.0 True
7 tuesday 8 15.0 False
例如,其中 df['day'].dtype
是 dtype('O')
。
我想将其转换为:
day hour price booked
0 1 7 12.0 1
1 1 8 12.0 0
2 2 7 13.0 1
3 3 8 13.0 0
4 1 7 15.0 1
5 1 8 13.0 0
6 2 7 13.0 1
7 2 8 15.0 0
到整数的映射可以是任意的。
最佳答案
您可以使用factorize
将列中的不同值编码为整数:
df['day'] = pd.factorize(df.day)[0]
这会将示例 DataFrame 的“日”列设置为以下内容:
>>> df
day hour price booked
0 0 7 12 True
1 0 8 12 False
2 1 7 13 True
3 2 8 13 False
4 0 7 15 True
5 0 8 13 False
6 1 7 13 True
7 1 8 15 False
“日”列是整数类型:
>>> df.dtypes
day int64
hour int64
price float64
booked bool
关于python - Pandas:如何将表示类别的字符串对象列转换为整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32595201/