例如,如果我有一个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
映射到整数可以是任意的。
答案 0 :(得分:3)
您可以使用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
这一天' column是整数类型:
>>> df.dtypes
day int64
hour int64
price float64
booked bool