2015-09-18 4 views
1
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: массивы должна быть все же длиной»

Пожалуйста, помогите мне

+1

Что вы ждете здесь? столбец «Имя сайта» содержит 39 записей и ваш следующий столбец 20, если вы изменили на «arange (39)», тогда он запускается – EdChum

ответ

2

Вы получаете сообщение об ошибке, потому что «Имя сайта» категорично с 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 т е р требует, чтобы при прохождении Dict как парам данных все значения должны быть массив, как и такой же длины

Смежные вопросы