Customer_ID Gender Age L_O_S Tariff Handset K100130 1 45 46.566667 CAT 50 SOP20 K100150 1 30 26.9 CAT 50 SOP20 Customer_ID Peak_calls Peak_mins OffPeak_calls OffPeak_mins Weekend_calls Weekend_mins International_mins Nat_call_cost month K100130 12 10.587465 5 4.479312 0 0 4.38141 0 4 K100130 14 11.530076 7 4.878109 1 3.045756 4.77149 0 6 K100130 10 9.10947 4 3.854007 0 0 3.769771 0 1 用这两个表格帮我进行聚类分析并写出python代码
时间: 2024-03-21 10:38:48 浏览: 130
首先,我们需要将两个表格合并成一个数据集,可以使用 Pandas 在 Python 中操作数据:
```python
import pandas as pd
import numpy as np
# 读入两个表格
df1 = pd.read_csv('table1.csv')
df2 = pd.read_csv('table2.csv')
# 合并表格
df = df1.merge(df2, on='Customer_ID')
# 查看数据集
print(df.head())
```
接下来,我们可以对数据集进行预处理,例如删除不必要的列、处理缺失值等:
```python
# 删除不必要的列
df = df.drop(['Customer_ID'], axis=1)
# 处理缺失值
df = df.fillna(df.mean())
```
然后,我们可以使用 Scikit-learn 中的 KMeans 聚类算法对数据集进行聚类分析:
```python
from sklearn.cluster import KMeans
# 定义聚类的数量
k = 3
# 创建 KMeans 聚类模型
kmeans = KMeans(n_clusters=k)
# 对数据集进行聚类
kmeans.fit(df)
# 查看聚类结果
labels = kmeans.labels_
print(labels)
```
最后,我们可以将聚类结果可视化:
```python
import matplotlib.pyplot as plt
# 可视化聚类结果
plt.scatter(df['Age'], df['Peak_mins'], c=labels)
plt.xlabel('Age')
plt.ylabel('Peak_mins')
plt.show()
```
这样就完成了聚类分析,完整代码如下:
```python
import pandas as pd
import numpy as np
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
# 读入两个表格
df1 = pd.read_csv('table1.csv')
df2 = pd.read_csv('table2.csv')
# 合并表格
df = df1.merge(df2, on='Customer_ID')
# 删除不必要的列
df = df.drop(['Customer_ID'], axis=1)
# 处理缺失值
df = df.fillna(df.mean())
# 定义聚类的数量
k = 3
# 创建 KMeans 聚类模型
kmeans = KMeans(n_clusters=k)
# 对数据集进行聚类
kmeans.fit(df)
# 查看聚类结果
labels = kmeans.labels_
print(labels)
# 可视化聚类结果
plt.scatter(df['Age'], df['Peak_mins'], c=labels)
plt.xlabel('Age')
plt.ylabel('Peak_mins')
plt.show()
```
阅读全文