панды пакетные запросы API - PullRequest
0 голосов
/ 12 декабря 2018

У меня есть фрейм данных панд, который содержит один столбец.С помощью этого столбца (в качестве ключа) выполняется поиск веб-API и результаты добавляются в качестве дополнительного столбца.

Существует ли простой способ пакетных операций, т. Е. 100 элементов и для каждого полного сохранения результатов?

Или это единственный способ добиться этого - вручную перебирать данные в пакетном режиме?

1 Ответ

0 голосов
/ 12 декабря 2018

IIUC вы можете использовать np.array_split для достижения этой цели:

In[24]:
df = pd.DataFrame(np.random.randn(10,3), columns=list('abc'))
for chunk in np.array_split(df,(len(df.index)+2)/3):
    print(chunk)

          a         b         c
0  0.013657  0.075587  0.422208
1  0.380518 -1.941691  2.465324
2 -0.530724 -0.074501 -0.527502
          a         b         c
3  0.959920  0.282187  1.277451
4 -0.013171  1.610865  0.492687
5  0.353947 -1.406726 -0.402013
          a         b         c
6 -0.462242  1.267895 -0.477148
7 -0.735699 -0.567091 -1.212561
          a         b         c
8 -1.416133  0.355858 -0.053821
9 -0.942774 -0.331276 -0.234650

Так что array_split разделит df на разбиения неравного размера, если он не может разделить одинаково, поэтомуЯ передаю длину индекса и, чтобы округлить, добавляю 2, чтобы получился 4-й блок, если я этого не сделал:

In[25]:
for chunk in np.array_split(df,len(df.index)/3):
    print(chunk)

          a         b         c
0  0.013657  0.075587  0.422208
1  0.380518 -1.941691  2.465324
2 -0.530724 -0.074501 -0.527502
3  0.959920  0.282187  1.277451
          a         b         c
4 -0.013171  1.610865  0.492687
5  0.353947 -1.406726 -0.402013
6 -0.462242  1.267895 -0.477148
          a         b         c
7 -0.735699 -0.567091 -1.212561
8 -1.416133  0.355858 -0.053821
9 -0.942774 -0.331276 -0.234650

Попытка просто создать фрагменты размера 3как деление было округлено вниз.

...