Ошибка типа: индексы списка должны быть целыми числами или фрагментами, а не str, при попытке выполнить одно горячее кодирование с помощью get_dummies

#python #arrays #pandas #data-science #training-data

#питон #массивы #панды #наука о данных #обучающие данные

Вопрос:

это не позволяет мне одним горячим способом кодировать этот столбец, чтобы сделать его в двоичной форме, есть идеи, почему, не понимаю typerror. В прошлом это отлично работало с теми же данными, не уверен, что происходит

 <ipython-input-67-f853e47a6b2c> in <module>()
----> 1 dummies2=pd.get_dummies(x['call_type'])
      2 x=pd.concat([x,dummies2], axis=1)
      3 x

TypeError: list indices must be integers or slices, not str


  

это мой набор данных, он был json, но преобразован в csv

 0   6/14/17 21:54   10 14TH ST, San Diego, CA 1151    2.0 32.705449   -117.151870
1   3/29/17 22:24   10 14TH ST, San Diego, CA 1016    2.0 32.705449   -117.151870
2   6/3/17 18:04    10 14TH ST, San Diego, CA 1016    2.0 32.705449   -117.151870
3   3/17/17 10:57   10 14TH ST, San Diego, CA 1151    2.0 32.705449   -117.151870
4   3/3/17 23:45    10 15TH ST, San Diego, CA 911P    2.0 32.705722   -117.150350
  

Комментарии:

1. Возможно ли, что вы используете старый способ вызова этого? pandas.pydata.org/pandas-docs/stable/reference/api / … , pd.get_dummies(x, columns=['call_type']) работает? Это обеспечивает обратное соединение с данными без необходимости делать это явно. я думаю, возможно, вы имеете в виду более старую версию pandas, когда способ, который вы показываете, был таким, как это было сделано.

2. как бы интегрировать это с моим кодом? для добавления обратно в мой x

3. Вы пробовали это? Нет необходимости интегрировать его обратно, функция теперь возвращает макеты, соединенные с исходными данными.

4. @WoodyPride ['call_type', 'date_time', 'FullAddress', 'priority', 'day'] я получаю это в ответ только при вводе pd.get_dummies(x, columns=['call_type']) x

5. вы уверены? Функция возвращает представление данных, то есть это не повлияет на имеющиеся у вас данные. Итак, у вас должно быть x=pd.read_csv('your_data.csv') , а затем x = pd.get_dummies(x, columns=['call_type']) , и теперь у x будут все столбцы, которые вы хотите.