df1 = DataFrame({'Site Name' : pd.Categorical(list('EENEESENNENNENNWNWSSESSESSWSWVRBWWNWWSW'),categories=['E','ENE','ESE','N','NE','NNE','NNW','NW','S','SE','SSE','SSW','SW','VRB','W','WNW','WSW']), 'B' : numpy.arange(20) })
这是我的代码,用于转换分类数据,我不断收到这样的错误
“ ValueError:数组必须全部具有相同的长度”
请帮帮我
最佳答案
您收到错误消息是因为“站点名称”是具有39个条目的类别,而“ B”列具有20个条目,如果将其更改为与长度(np.arange(39)
)相匹配,则可以正常工作:
In [5]:
import pandas as pd
import numpy as np
df1 = pd.DataFrame({'Site Name' : pd.Categorical(list('EENEESENNENNENNWNWSSESSESSWSWVRBWWNWWSW'),categories=['E','ENE','ESE','N','NE','NNE','NNW','NW','S','SE','SSE','SSW','SW','VRB','W','WNW','WSW']), 'B' : np.arange(39) })
df1
Out[5]:
B Site Name
0 0 E
1 1 E
2 2 N
3 3 E
4 4 E
5 5 S
6 6 E
7 7 N
8 8 N
9 9 E
10 10 N
11 11 N
12 12 E
13 13 N
14 14 N
15 15 W
16 16 N
17 17 W
18 18 S
19 19 S
20 20 E
21 21 S
22 22 S
23 23 E
24 24 S
25 25 S
26 26 W
27 27 S
28 28 W
29 29 NaN
30 30 NaN
31 31 NaN
32 32 W
33 33 W
34 34 N
35 35 W
36 36 W
37 37 S
38 38 W
DataFrame ctor要求在将dict作为数据参数传递时,所有值都必须类似数组且长度相同
关于python - Pandas 分类数据转换,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32653257/