# 统计是否被诈骗数量分布 num_fraud = data[data['fraud'] == 1.0].shape[0] # fraud = 1.0 表示 被诈骗数据 num_no_fraud = ??? # fraud = 0.0 表示 未被诈骗数据
时间: 2024-03-31 09:39:11 浏览: 79
你可以使用类似下面的代码来统计是否被诈骗数量分布:
```python
num_fraud = data[data['fraud'] == 1.0].shape[0]
num_no_fraud = data[data['fraud'] == 0.0].shape[0]
print("被诈骗的数量:", num_fraud)
print("未被诈骗的数量:", num_no_fraud)
```
其中,`data['fraud'] == 1.0` 表示选取 `data` 数据集中 `fraud` 列中等于 `1.0` 的行。`shape[0]` 表示选取的行数,即被诈骗的数量或未被诈骗的数量。注意,`fraud` 列中的值可能是浮点型,因此需要使用 `1.0` 或 `0.0` 来比较。
相关问题
#第 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,并重新设置索引。这个过程叫做欺诈数据集的下采样,目的是为了平衡欺诈和非欺诈数据的比例。
阅读全文