Добавление нового столбца в df каждый цикл цикла for - PullRequest
2 голосов
/ 22 марта 2019

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

import numpy as np
import pandas as pd

newdf = np.zeros([1000,5])
df = pd.DataFrame(np.random.choice([0.0, 0.05], size=(1000,1000)))

for i in range(0, 10):
    df['sum']= df.iloc[:, -1000:].sum(axis=1)
    newdf[:,i] = df['sum']
    df = df.drop('sum', 1)

Однако я получаю следующую ошибку:

Индекс 5 выходит за пределы для оси 1 с размером 5

Спасибо

1 Ответ

2 голосов
/ 24 марта 2019

Проблема возникает не из-за того, что имеет отношение к df, а потому, что когда i = 5, newdf[:, i] ссылается на шестой столбец массива NumPy, содержащего только пять столбцов. Если вместо этого вы инициализируете newdf - newdf = np.zeros([1000, 10]) или выполняете цикл только по range(5), то ваш код выполняется без ошибок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...