Dlaczego otrzymuję ten błąd?

Ufunc 'add' nie zawierał pętli z typami dopasowywania podpisów dtype

Kod:

cols = df.columns.tolist()
cols = np.array (cols)
cols2 = cols[:17] + cols[19:22] + cols [18]

Dzięki!

0
Amit S 19 grudzień 2019, 14:51

1 odpowiedź

Istnieją 2 problemy

  • operator +, gdy jest używany na tablicy numpy, jest interpretowany jako dodawanie liczbowe, a nie konkatenacja listy, stąd błąd dotyczący pasującego typu dtype. Zamiast dodawać, należy użyć np.concatenate
  • cols[18] nie jest tablicą - jest elementem tablicy. Nie możesz dodać liczby i tablicy (jeśli chcesz dodać element do tablicy)
cols2 = np.concatenate([cols[:17], cols[19:22], [cols[18]]])

Lub możesz zachować kolumny jako listę (nie konwertując jej na tablicę numpy i używaj dodawania do listy):

cols = df.columns.tolist()
cols2 = cols[:17] + cols[19:22] + [cols[18]]
0
9mat 19 grudzień 2019, 15:01
Błąd polega na tym, że kolumny to jedna kolumna z 23 wierszami. Więc jak mogę stworzyć nowy wektor z kolumnami - 0-10 + 15-20 + 20-21 ? TY
 – 
Amit S
19 grudzień 2019, 15:05
Jak powiedziałem, możesz użyć dodawania listy lub konkatenacji numpy. Myślę, że dodawanie listy jest lepsze cols = df.columns.tolist(); cols2 = cols[:11] + cols[15:21] + cols[21:22] (ale nie konwertuj cols na np.array)
 – 
9mat
19 grudzień 2019, 15:08