# 统计是否被诈骗数量分布 num_fraud = data[data['fraud'] == 1.0].shape[0] # fraud = 1.0 表示 被诈骗数据 num_no_fraud = data[data['fraud'] == 0.0].shape[0] # fraud = 0.0 表示 未被诈骗数据 print(num_fraud,num_no_fraud) ##绘制正负样本百分比图 # 数据 labels = ['fraud', 'Not fraud'] sizes = [num_fraud, num_no_fraud] # 绘制饼图 plt.???(sizes, labels=labels,colors=['#fdbf9c','#d6f9d1'], autopct='%1.1f%%', textprops={'fontsize': 13},startangle=90) # 添加标题 plt.title('是否被诈骗数量分布百分比图',fontsize=15) # 显示图形 plt.show()
时间: 2023-10-11 16:10:43 浏览: 118
以下是完整的代码,用于统计是否被诈骗数据的数量分布并绘制饼图:
```python
import pandas as pd
import matplotlib.pyplot as plt
# 读取数据集
data = pd.read_csv("data.csv")
# 统计是否被诈骗数据的数量分布
num_fraud = data[data['fraud'] == 1.0].shape[0] # fraud = 1.0 表示被诈骗数据
num_no_fraud = data[data['fraud'] == 0.0].shape[0] # fraud = 0.0 表示未被诈骗数据
# 绘制正负样本百分比图
labels = ['fraud', 'Not fraud']
sizes = [num_fraud, num_no_fraud]
# 绘制饼图
plt.pie(sizes, labels=labels, colors=['#fdbf9c','#d6f9d1'], autopct='%1.1f%%', textprops={'fontsize': 13}, startangle=90)
# 添加标题
plt.title('是否被诈骗数量分布百分比图',fontsize=15)
# 显示图形
plt.show()
```
执行上述代码后,你会得到一个饼图,用于表示是否被诈骗数据的数量分布情况。
相关问题
#第 2步:计算 表NotFraud 的相关性 # 这里计算 除 fraud列 的剩余7列的相关性 corr_Fraud = Fraud.loc[:, Fraud.columns != 'fraud'].corr() # 查看计算结果 corr_Fraud
你可以使用 `corr()` 方法来计算相关性,如下所示:
```python
# 计算表Fraud的相关性
corr_Fraud = Fraud.loc[:, Fraud.columns != 'fraud'].corr()
print(corr_Fraud)
```
这将计算 `Fraud` 表中除 `fraud` 列以外的所有列(即剩余的七列)两两之间的相关性,并存储在 `corr_Fraud` 中。使用 `loc[]` 方法可以按标签选取行或列, `[:, Fraud.columns != 'fraud']` 表示选取所有行,并且选取除 `fraud` 列以外的所有列。最后使用 `print()` 函数输出相关性矩阵。
df1 = data.query('fraud == 1') df2 = data.query('fraud == 0').sample(len(df1)) data = pd.concat([df1,df2],axis=0).reset_index(drop=True)
这段代码的作用是将原始数据集按照欺诈标记fraud进行分组,得到欺诈数据集df1和非欺诈数据集df2。然后从非欺诈数据集df2中随机抽取与欺诈数据集df1相同数量的样本,得到新的非欺诈数据集df2。最后将欺诈数据集df1和新的非欺诈数据集df2进行合并,得到新的数据集data,并重新设置索引。这个过程叫做欺诈数据集的下采样,目的是为了平衡欺诈和非欺诈数据的比例。
阅读全文