15.3月20日 数据分析DataFrame应用
在上节课的基础上,完成
1. 统计某工号整年收入数据(求和)
import numpy as np
import pandas as pd
from pandas import Series,DataFrame
import matplotlib.pyplot as plt
df_csv = pd.read_csv('工资数据.csv')
num_27=df_csv[df_csv['工号']==27]
num_27_2023=num_27[(num_27['月份']>="2023-01") & (num_27['月份']<"2024-01")]
total_revenue_2023 = num_27_2023['实发金额'].sum()
print(total_revenue_2023)
2. 统计20、21、22、23年收入变化趋势(用函数进行)
需要用函数来处理,类似情况
import numpy as np
import pandas as pd
from pandas import Series,DataFrame
import matplotlib.pyplot as plt
plt.rcParams["font.family"] = "SimHei"
df_csv = pd.read_csv('./4. Pandas/工资数据.csv', encoding='utf-8')
num_27=df_csv[df_csv['工号']==27]
# 定义函数
def filter_by_month(df, start_date, end_date):
return df[(df['月份'] >= start_date)& (df['月份'] < end_date)]
num_27_2020=filter_by_month(num_27,"2020-01","2021-01")
num_27_2021=filter_by_month(num_27,"2021-01","2022-01")
num_27_2022=filter_by_month(num_27,"2022-01","2023-01")
num_27_2023=filter_by_month(num_27,"2023-01","2024-01")
num_27_2020=num_27_2020['实发金额'].sum()
num_27_2021=num_27_2021['实发金额'].sum()
num_27_2022=num_27_2022['实发金额'].sum()
num_27_2023=num_27_2023['实发金额'].sum()
3. 对收入情况进行排序处理(排序)
此处需要用到分组功能
groupby 进行分组
ascending=False 降序
salary = df_2023.groupby(["工号"])["实发金额"].sum()
salary_sorted = salary.sort_values(ascending=False).head(60)
4. 对结果进行图表化
import numpy as np
import pandas as pd
from pandas import Series,DataFrame
import matplotlib.pyplot as plt
plt.rcParams["font.family"] = "SimHei"
df_csv = pd.read_csv('./4. Pandas/工资数据.csv', encoding='utf-8')
def filter_by_month(df, start_date, end_date):
return df[(df['月份'] >= start_date)& (df['月份'] < end_date)]
df_2023=filter_by_month(df_csv,"2023-01","2024-01")
salary = df_2023.groupby(["工号"])["实发金额"].sum()
salary_sorted = salary.sort_values(ascending=False).head(60)
print(salary_sorted)
fig = plt.figure(figsize=(6, 4))
ax = fig.add_subplot()
ax.bar(salary_sorted.index.astype(str), salary_sorted.values)
plt.title('2023 年各工号实发金额总和')
plt.xlabel('工号')
plt.ylabel('实发金额总和')
plt.xticks(rotation=45) # 旋转 x 轴标签,防止重叠
plt.show()
练习:用图表比较2023-12各员工收入情况
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 现代职校董良
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果