python中1、打开数据集(simudata.csv)。 2、查看数据属性(形状,列标题,类型)。 3、统计是否按期还款不同类型的人数(即:还款人数和未还款人数)? 4、统计不同性别的是否按期还款人数及还款能力(能按期还款人数/总人数),并把是否还款人数用柱形图表示? 5、统计不同学历的是否按期还款人数及还款能力(能按期还款人数/总人数),并把是否按期还款人数用柱形图表示?
时间: 2024-01-19 20:02:49 浏览: 142
以下是Python代码实现:
```python
import pandas as pd
import matplotlib.pyplot as plt
# 1. 打开数据集
df = pd.read_csv('simudata.csv')
# 2. 查看数据属性
print("数据形状:", df.shape)
print("数据列标题:", df.columns)
print("数据类型:", df.dtypes)
# 3. 统计是否按期还款不同类型的人数
repay_count = df.groupby(['是否按期还款'])['是否按期还款'].count()
print("是否按期还款人数统计:\n", repay_count)
# 4. 统计不同性别的是否按期还款人数及还款能力
sex_repay_count = df.groupby(['性别', '是否按期还款'])['是否按期还款'].count().unstack()
sex_repay_count.plot(kind='bar', stacked=True)
plt.title('不同性别是否按期还款人数')
plt.xlabel('性别')
plt.ylabel('人数')
plt.show()
sex_repay_ability = sex_repay_count['Y'] / (sex_repay_count['Y'] + sex_repay_count['N'])
print("不同性别还款能力:\n", sex_repay_ability)
# 5. 统计不同学历的是否按期还款人数及还款能力
edu_repay_count = df.groupby(['学历', '是否按期还款'])['是否按期还款'].count().unstack()
edu_repay_count.plot(kind='bar', stacked=True)
plt.title('不同学历是否按期还款人数')
plt.xlabel('学历')
plt.ylabel('人数')
plt.show()
edu_repay_ability = edu_repay_count['Y'] / (edu_repay_count['Y'] + edu_repay_count['N'])
print("不同学历还款能力:\n", edu_repay_ability)
```
解释:
1. 使用`pandas`库的`read_csv()`函数打开数据集文件,赋值给`df`。
2. 使用`shape`、`columns`和`dtypes`属性查看数据的形状、列标题和类型。
3. 使用`groupby()`函数按照是否按期还款进行分组,然后使用`count()`函数统计每组的人数。
4. 使用`groupby()`函数按照性别和是否按期还款进行分组,然后使用`unstack()`函数将结果展开成表格,并使用`plot()`函数绘制堆叠柱形图。计算还款能力时,将“按期还款人数”除以“总人数”。
5. 与第4步类似,只是按照学历分组。
阅读全文