python如何在csv文件中随机添加离散型异常点,并且分别画出原始数据和异常点
时间: 2023-12-06 20:45:20 浏览: 74
可以使用Python中的pandas和matplotlib库来实现。
首先,我们需要生成一些模拟数据。假设我们有一个包含两个离散型变量(A和B)的csv文件,我们可以使用以下代码生成这个csv文件:
```python
import pandas as pd
# 生成原始数据
data = pd.DataFrame({
'A': ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'],
'B': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
})
# 将原始数据保存到csv文件中
data.to_csv('data.csv', index=False)
```
现在我们有了一个名为“data.csv”的文件,它包含两列数据:A和B。
接下来,我们可以使用以下代码向数据中添加离散型异常点:
```python
import random
# 读取csv文件中的数据
data = pd.read_csv('data.csv')
# 随机选择一些数据行
n = 2 # 添加2个异常点
outliers = random.sample(range(len(data)), n)
# 在选定的行中随机修改'A'列的值
for i in outliers:
data.at[i, 'A'] = 'z'
# 将带有异常点的数据保存到csv文件中
data.to_csv('data_with_outliers.csv', index=False)
```
现在,我们有了一个名为“data_with_outliers.csv”的文件,它包含两列数据:A和B,其中A列的某些值被修改为“z”,这些就是我们添加的离散型异常点。
最后,我们可以使用以下代码分别绘制原始数据和带有异常点的数据:
```python
import matplotlib.pyplot as plt
# 读取csv文件中的数据
data = pd.read_csv('data.csv')
data_with_outliers = pd.read_csv('data_with_outliers.csv')
# 绘制原始数据
plt.subplot(2, 1, 1)
plt.scatter(x=data.index, y=data['B'])
plt.title('Original Data')
# 绘制带有异常点的数据
plt.subplot(2, 1, 2)
plt.scatter(x=data_with_outliers.index, y=data_with_outliers['B'])
plt.title('Data with Outliers')
# 显示图形
plt.show()
```
这段代码将生成一个包含两个子图的图形,第一个子图显示原始数据,第二个子图显示带有异常点的数据。
阅读全文