3.按照年齡進(jìn)行分類(20-29歲,30-39歲,40-49歲),然后統(tǒng)計(jì)出各個(gè)年齡段有多少人,并用直方圖進(jìn)行展示。
import pandas as pd
import matplotlib.pyplot as plt
from collections import Counter
info = [{"name": "E001", "gender": "man", "age": "34", "sales": "123", "income": 350},
{"name": "E002", "gender": "feman", "age": "40", "sales": "114", "income": 450},
{"name": "E003", "gender": "feman", "age": "37", "sales": "135", "income": 169},
{"name": "E004", "gender": "man", "age": "30", "sales": "139", "income": 189},
{"name": "E005", "gender": "feman", "age": "44", "sales": "117", "income": 183},
{"name": "E006", "gender": "man", "age": "36", "sales": "121", "income": 80},
{"name": "E007", "gender": "man", "age": "32", "sales": "133", "income": 166},
{"name": "E008", "gender": "feman", "age": "26", "sales": "140", "income": 120},
{"name": "E009", "gender": "man", "age": "32", "sales": "133", "income": 75},
{"name": "E010", "gender": "man", "age": "36", "sales": "133", "income": 40}
]
# 讀取數(shù)據(jù)
def get_data():
df = pd.DataFrame(info)#DataFrame是一個(gè)以命名列方式組織的分布式數(shù)據(jù)集
df[["age"]] = df[["age"]].astype(int) # 數(shù)據(jù)類型轉(zhuǎn)為int
df[["sales"]] = df[["sales"]].astype(int) # 數(shù)據(jù)類型轉(zhuǎn)為int
return df
def group_by_gender(df):
var = df.groupby('gender').sales.sum()#groupby將元素通過(guò)函數(shù)生成相應(yīng)的Key,數(shù)據(jù)就轉(zhuǎn)化為Key-Value格式,之后將Key相同的元素分為一組
fig = plt.figure()
ax1 = fig.add_subplot(211)#2*1個(gè)網(wǎng)格,1個(gè)子圖
ax1.set_xlabel('Gender') # x軸標(biāo)簽
ax1.set_ylabel('Sum of Sales') # y軸標(biāo)簽
ax1.set_title('Gender wise Sum of Sales') # 設(shè)置圖標(biāo)標(biāo)題
var.plot(kind='bar')
plt.show() # 顯示
def group_by_age(df):
age_list = [20, 30, 40, 50]
res = pd.cut(df['age'], age_list, right=False)
count_res = pd.value_counts(res)
df_count_res = pd.DataFrame(count_res)
print(df_count_res)
plt.hist(df['age'], bins=age_list, alpha=0.7) # age_list 根據(jù)年齡段統(tǒng)計(jì)
# 顯示橫軸標(biāo)簽
plt.xlabel("nums")
# 顯示縱軸標(biāo)簽
plt.ylabel("ages")
# 顯示圖標(biāo)題
plt.title("pic")
plt.show()
def gender_count(df):
res = df['gender'].value_counts()
df_res = pd.DataFrame(res)
label_list = df_res.index
plt.axis('equal')
plt.pie(df_res['gender'], labels=label_list,
autopct='%1.1f%%',
shadow=True, # 設(shè)置陰影
explode=[0, 0.1]) # 0 :扇形不分離,0.1:分離0.1單位
plt.title('gender ratio')
plt.show()
print(df_res)
print(label_list)
if __name__ == '__main__':
data = get_data()
group_by_gender(data)
gender_count(data)
group_by_age(data)
到此這篇關(guān)于python數(shù)據(jù)分析之員工個(gè)人信息可視化的文章就介紹到這了,更多相關(guān)python員工信息可視化內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!