Pandas 基于列对数据进行分类,然后为每个数据帧找到相关性

Pandas bin data based on a column then find correlations for each dataframe

我有以下数据框,

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 个 bin,介于 1 到 999 年之间,所以像

df = df[df[years_left] > 0 && df[years_left] < 10]
df2 = df[df[years_left] > 11 && df[years_left] < 20]
....

我必须手动创建每个数据框。或者使用 for 循环在列表中创建数据框。

有没有捷径可以做我想做的事?要将数据分到我想要的多少个分箱中,然后在每个分箱中找到相关性?

您可以像这样创建数据框字典:

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

注意: 您也可以使用 list comprehension.

而不是 dict comprehension