Цикл по суб-фреймам в Python

1

У меня огромный кадр данных pandas, называемый main_df, и я хотел разбить его на десять под-данных, чтобы было легче обрабатывать. Для разделения кадра данных я сделал следующее:

df_split = np.array_split(main_df, 10)

Теперь я могу вызвать каждое подмножество, выполнив следующие действия:

df_split[0].head(10)
df_split[1].head(10)

и так далее...

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

for x in df_split:
    df_split[x] = "some action"

Будет ли это правильным способом прокрутки каждого подкадрового кадра df_split с циклом for? Любые предложения или рекомендации будут высоко оценены.

Теги:
pandas

3 ответа

0

Будет ли это правильным способом прокрутки каждого подкадрового кадра df_split с циклом for?

Нет, ваше решение неверно. np.array_split возвращает list суб-данных. x представляет собой собственный df_split[x], поэтому df_split[x] не имеет смысла. Вместо этого используйте enumerate:

for idx, df_sub in enumerate(df_split):
    df_split[idx] = some_function(df_sub)
0

Единственная проблема заключается в реализации. Когда вы выполняете итерацию по df_split вы фактически зацикливаете непосредственно на dataframes, как вы можете видеть:

df_split = np.array_split(df, 2)
for x in df_split :
    print(type(x))

<class 'pandas.core.frame.DataFrame'>
<class 'pandas.core.frame.DataFrame'>

Поэтому в основном не пытайтесь индексировать df_split с помощью x, поскольку он уже является фреймворком данных. Просто выполните:

for x in df_split:
    x = "some action"
0

df_split = np.array_split (main_df, 10)

для x в df_split: x = "some_action"

df_split [i] даст вам сообщение об ошибке, потому что вы не используете индекс для доступа к разделенному кадру данных. Вы используете их как x.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню