Панды связывают данные на основе столбца, а затем находят корреляции для каждого кадра данных

#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 .