import pandas as pd
df=pd.read_excel(r'd:\data.xlsx')
df.head()
image.png
透视表
res=pd.pivot_table(df,index=['城市','地区'],values=['价格','利润'],aggfunc='mean')
res.head()
result4 = pd.pivot_table(df,index=['城市'],columns=['商品名称'],aggfunc=['sum'],values=['价格'],margins=True)
result4.head()
透视表 margins:是否添加行列的总计
res=pd.pivot_table(df,index=['商品名称'],values=['价格','利润'],aggfunc='sum',columns='城市',margins=True)
res.head()
使用数据透视表以及seaborn生成条状图
import pandas as pd
import matplotlib.pyplot as plt
import random
import seaborn as sns
df=pd.read_excel(r'd:\data.xlsx')
print(df.head(20))
sns.set_style('darkgrid')
#whitegird white dark tikes
plt.rcParams['font.sans-serif'] ='SimHei'
#数据透视表,aggfunc的方法还有,count-计数、means-评价。max,min等
df_group=pd.pivot_table(df,values='价格',index='地区',aggfunc='sum').reset_index().sort_values(ascending=False,by='价格')
f,ax=plt.subplots(figsize=(8,4),dpi=100)
#设置网格,并虚线显示
plt.grid(axis='y',ls='--')
ax.spines['right'].set_visible('False')#删除边框
ax.spines['top'].set_visible('False')
name_list=df_group['地区'].values
name_list=[i[:5] for i in name_list]
num_list=df_group['价格'].values
plt.xlabel('地区')
plt.ylabel('价格')
bar=plt.bar(range(len(num_list)),num_list,color='rgb',width=0.6)
colors=['blue','grey','red','k','white','green','pink','grey']#给柱状图设置自定义颜色
colors=random.sample(colors,len(bar))
for i in range(len(bar)):
bar[i].set_color(colors[i])
for x,y in enumerate(num_list):
plt.text(x,y,'%s' %y)
plt.title('地区商品价格表')
x=range(10)
plt.xticks(x,name_list,color='blue',rotation=30) #显示标签,并倾斜30度
#plt.show()
# fig=sns.lineplot(x='地区',y='价格',hue='地区',data=df_group)#设置图例
# fig.legend(loc='best',bbox_to_anchor=(1.04,1),ncol=1)
plt.savefig('top10price.png')
image.png
常用颜色
image.png
网友评论