从数据框的一列绘制2个变量

时间:2019-12-02 19:37:20

标签: python pandas plot

我有一个包含几列的数据框,其上是性别(男,女)。我想得到两个变量相对于第三个变量的折线图,在本例中为收入,我有以下代码:

ax = plt.gca()

df.plot(kind='line', x='income', y=[df.gender=='male'], ax=ax)
df.plot(kind='line', x='income', y=[df.gender =='female'], color='red', ax=ax)

plt.show()

并且我不断收到Value错误。 我想我应该使用条形图? 有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我会使用groupby + unstack。假设您对每个收入值都有一个男性和女性观察,下面的代码应该可以为您提供所需的信息:

df = pd.DataFrame([['male',2,3],
                  ['female',2,8],
                  ['male',5,9],
                  ['female',5,8],
                  ['male',7,4],
                  ['female',7,3]], columns = ['gender', 'income', 'debt'])
df.groupby(['gender', 'income'])['debt'].mean().unstack(level=0).plot(kind='bar')

enter image description here