Подтвердить что ты не робот

Добавить в серию в python/pandas не работает

Я пытаюсь добавить значения к серии 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 Это вопрос о науке о данных, в котором я должен найти состояние с большинством округов путем поиска в кадре данных. Я использую значения индекса, где заканчивается одно состояние, и начинается следующее (значения в массиве, которые я использую, чтобы найти разницу), чтобы определить, сколько уездов находится в этом состоянии. Если кто-то знает, как решить эту проблему лучше, чем я, пожалуйста, дайте мне знать!

4b9b3361

Ответ 1

Метод append не работает на месте. Вместо этого он возвращает новый объект Series. Так должно быть:

q = q.append(a)

Надеюсь, поможет!

Ответ 2

В документации 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