首页 > 解决方案 > 从 pandas groupby 中提取列作为向量

问题描述

我使用 pandas 的 groupby 函数创建了这个表,并希望将每一列提取为向量/数组
df_duration_means = df.groupby('Duration').mean()

兴趣 贷款额度 生命周期价值
期间
6 0.107500 274000.000000 0.652500
9 0.112500 510500.000000 0.580000
12 0.105345 276632.758621 0.595517
15 0.080000 81000.000000 0.678000
18 0.109167 516557.666667 0.455867
24 0.101500 374500.000000 0.554800

现在我想为 4 列(包括持续时间)中的每一列提取一个向量。但我无法做到这一点,甚至检查了熊猫文档和所有可能的类似线程。

dur = df_duration_means.index
print(dur)
interest_mx = df_duration_means['Loan amount']
print(interest_mx)

这样我就可以绘制每个列向量与持续时间向量:

fig =  plt.figure()
ax = fig.add_axes([0,0,1,1])
ax.plot(dur,in,color=)

标签: pythonpandasdataframedatatablepandas-groupby

解决方案


先试.reset_index(),再用方法.tolist()。像这样:

df_duration_means = df_duration_means.reset_index()
duration = df_duration_means.index.tolist()
interest = df_duration_means['Interest'].tolist()
loan_amount = df_duration_means['Loan amount'].tolist()
ltv = df_duration_means['LTV'].tolist()

然后,使用duration, interest, loan_amount, 和ltv作为 plotly 的输入

编辑:使用 plotly.express 有更简单的解决方案:

import plotly.express as px 
df_duration_means = df_duration_means.reset_index()
fig = px.line(df_duration_means, x=df_duration_means.index, y=['Interest', 'Loan amount', 'LTV'])

推荐阅读