python 创建pivot_table的图形

lf5gs5x2  于 2023-03-16  发布在  Python
关注(0)|答案(2)|浏览(132)

我创建了一个数据透视表,并希望创建一个条形图。这是我的pivot_table:

我不知道如何提取列1970的值,并使用此信息制作条形图。

z3yyvxxp

z3yyvxxp1#

只需将dataframe列名转换为str,然后就可以用df['1970']选择1970年的数据,然后就可以使用pandas内置的plot.bar方法制作柱状图了,试试这个:

import pandas as pd
import matplotlib.pyplot as plt

#converting column names to string
df.columns = df.columns.astype(str)

#plotting a bar plot
df['1970'].plot.bar()
plt.show()

基于@AlanDyke数据框的示例

import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame([[1970,'a',1],
                   [1970,'b',2],
                   [1971,'a',2],
                   [1971,'b',3]],
                   columns=['year','location', 'value'])
df = pd.pivot_table(df, values='value', index='location', columns='year')
df.columns = df.columns.astype(str)
df['1970'].plot.bar()

plt.show()

rqenqsqc

rqenqsqc2#

您可以使用plt.bar并对 Dataframe 进行切片:

df = pd.DataFrame([[1970,'a',1],
                   [1970,'b',2], 
                   [1971,'a',2],
                   [1971,'b',3]],
                   columns=['year','location', 'value'])
df = pd.pivot_table(df, values='value', index='location', columns='year')
plt.bar(list(df.transpose().columns), height=df[1970])

相关问题