import pandas as pd
import matplotlib.pyplot as plt
# 中文支持,不会显示小方框
plt.rcParams['font.sans-serif'] = ['SimHei', 'Songti SC', 'STFangsong']
# 正常显示负号
plt.rcParams['axes.unicode_minus'] = False
# 设置线条宽度
plt.rcParams['lines.linewidth'] = 50
# 设置线条颜色
plt.rcParams['lines.color'] = 'red'
# 设置线条样式,样式的各类还有 `--`为虚线,`-.`为点虚线
plt.rcParams['lines.linestyle'] = '--' # 直线
# 1. 创建一个示例 DataFrame
data = {
'Name': ['张三', '李四', '王五', '赵六', '田七'],
'Age': [24, 27, 22, 32, 29],
'Salary': [5000, 8500, 6800, 7200, 6500],
'Department': ['HR', 'IT', 'Finance', 'IT', 'HR']
}
df = pd.DataFrame(data)
# 2. 数据查看
print(f"DataFrame: \n{df} \n")
# 3. 基本统计
print(f"基本统计: \n {df.describe()} \n")
# 4. 数据选择
print(f"选择 'Name' 和 'Salary' 列: \n {df[ ['Name', 'Salary']]} \n")
# 5. 添加新列
df['Bonus'] = df['Salary'] * 0.1
print(f"添加 'Bonus' 列: \n {df} \n")
# 6. 条件筛选
print(f"筛选出薪水大于 6000 的员工: \n {df[df['Salary'] > 6000]} \n")
# 7. 分组统计
grouped = df.groupby('Department').mean(numeric_only=True) # 只计算数值列
print(f"按部门分组的平均值: \n {grouped} \n")
# 8. 处理缺失值
df.loc[1, 'Salary'] = None # 人为制造缺失值
print(f"处理缺失值: \n {df.fillna( df['Salary'].mean())} \n")
# 9. 数据排序
print(f"按年龄排序: \n {df.sort_values(by='Age')}")
# 10. 数据可视化
plt.figure(figsize=(10, 5))
plt.xlabel('姓名')
plt.ylabel('薪资')
plt.title('员工薪水')
plt.bar(df['Name'], df['Salary'], color='blue')
plt.show()