Эффективный способ добавить много строк в DataFrame - PullRequest
0 голосов
/ 05 января 2019

Я действительно хочу ускорить мой код.

Мой уже работающий код перебирает DataFrame и получает начальный и конечный год. Затем я добавляю его в списки. В конце цикла я добавляю пустой фрейм данных.

rows = range(3560)

#initiate lists and dataframe
start_year = []
end_year = []

for i in rows:

    start_year.append(i)
    end_year.append(i)


df = pd.DataFrame({'Start date':start_year, 'End date':end_year})

Я получаю то, что ожидаю, но очень медленно:

    Start date  End date
0   1            1
1   2            2
2   3            3
3   4            4

1 Ответ

0 голосов
/ 05 января 2019

Да, это можно сделать быстрее. Хитрость заключается в том, чтобы избегать list.append (или, что еще хуже pd.DataFrame.append) в цикле. Вы можете использовать list(range(3560)), но вы можете найти np.arange еще более эффективным. Здесь вы можете назначить массив нескольким сериям через dict.fromkeys:

df = pd.DataFrame(dict.fromkeys(['Start date', 'End date'], np.arange(3560)))

print(df.shape)
# (3560, 2)

print(df.head())
#    Start date  End date
# 0           0         0
# 1           1         1
# 2           2         2
# 3           3         3
# 4           4         4
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...