Ответ 1
Метод append
не работает на месте. Вместо этого он возвращает новый объект Series
. Так должно быть:
q = q.append(a)
Надеюсь, поможет!
Я пытаюсь добавить значения к серии pandas, полученной путем нахождения разницы между элементом nth и nth + 1:
q = pd.Series([])
while i < len(other array):
diff = some int value
a = pd.Series([diff], ignore_index=True)
q.append(a)
i+=1
Выход, который я получаю:
Series([], dtype: float64)
Почему я не получаю массив со всеми добавленными значениями?
-
PS Это вопрос о науке о данных, в котором я должен найти состояние с большинством округов путем поиска в кадре данных. Я использую значения индекса, где заканчивается одно состояние, и начинается следующее (значения в массиве, которые я использую, чтобы найти разницу), чтобы определить, сколько уездов находится в этом состоянии. Если кто-то знает, как решить эту проблему лучше, чем я, пожалуйста, дайте мне знать!
Метод append
не работает на месте. Вместо этого он возвращает новый объект Series
. Так должно быть:
q = q.append(a)
Надеюсь, поможет!
В документации Series.append говорится, что добавляет ряды other к концу этого кадра, возвращая новый объект.
Примеры немного сбивают с толку, поскольку кажется, что это работает, но если вы посмотрите внимательно, вы заметите, что они используют интерактивный питон, который печатает результат последнего вызова (новый объект), а не показывает оригинальный объект.
Результатом вызова append фактически является новая серия.
В вашем примере вам нужно будет каждый раз присваивать q новому объекту, возвращенному .append
:
q = pd.Series([])
while i < len(other array):
diff = some int value
a = pd.Series([diff], ignore_index=True)
# change of code here
q = q.append(a)
i+=1