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/

10-12 16:35
查看更多