#python #pandas #dataframe #correlation #analysis
Вопрос:
У меня есть следующий фрейм данных,
id sqft years_left date price
0 1400 65 01-01-2021 xxx
1 1200 49 01-01-1950 xxx
..
950,000 1600 10 09-05-1990 xx
Я хочу провести корреляцию между years_left и ценой.
Но я хочу разбить данные по столбцу year_left на 100 ячеек между 1 и 999 годами, так что, например
df = df[df[years_left] > 0 amp;amp; df[years_left] < 10]
df2 = df[df[years_left] > 11 amp;amp; df[years_left] < 20]
....
Я должен вручную создавать каждый кадр данных. Или используйте цикл for для создания фрейма данных в списке.
Есть ли короткий путь, чтобы сделать то, что я хочу? Чтобы сгруппировать данные в сколько ячеек я хочу, а затем найти корреляции в каждой ячейке?
Ответ №1:
вы можете создать диктант фрейма данных следующим образом:
df_dict = {f'df{index}': k for index, (_, k) in enumerate(
df.groupby(pd.cut(df.years_left, bins=range(0, 1000, 10))))}
И тогда вы сможете получить доступ к таким df, как:
df_dict['df1'] and so on ...
ПРИМЕЧАНИЕ: Вместо dict comprehension
этого вы также можете использовать list comprehension
.