ChatGPT使用場景:自動數據分析

本文將介紹如何使用ChatGPT進行自動數據分析,使用的工具有matplotlib、seaborn和plotly。

使用建議與心得

在每日通過ChatGPT進行學習(xi) 和編碼的過程中,筆者發現了如下幾個(ge) 規律:

  • ChatGPT生成代碼的能力取決於問題的難度,以及原始數據集中類似數據的多少。
  • ChatGPT生成結果的有效性取決於提問模板、給出的例子和背景信息。

因此為(wei) 了簡化問題難度,也為(wei) 了ChatGPT能理解數據集,並直接寫(xie) 出正確的代碼(不需要修改就可以運行),需要讓ChatGPT快速數據集的列明和列類型,將數據集進行描述。

下麵是分別使用matplotlib、seaborn和plotly進行數據分析樣例,ChatGPT輸出的代碼都可以直接運行。

注明:前提是已經讀取了相關(guan) 數據集。

場景1:使用matplotlib

相關性分析

魔法命令

數據表 iris_df 存在Pandas中,結構如下 - sepal length (cm), 類型 float64 - sepal width (cm), 類型 float64 - petal length (cm), 類型 float64 - petal width (cm), 類型 float64 - target, 類型 int64

寫(xie) 出Python代碼,使用matplotlib進行相關(guan) 性分析的代碼

ChatGPT輸出

import matplotlib.pyplot as plt

# 計算相關(guan) 係數矩陣

corr_matrix = iris_df.corr()

# 繪製相關(guan) 係數矩陣熱力圖

fig, ax = plt.subplots()
im = ax.imshow(corr_matrix, cmap='coolwarm')

# 添加顏色條

cbar = ax.figure.colorbar(im, ax=ax)

# 設置標簽

ax.set_xticks(range(len(corr_matrix)))
ax.set_yticks(range(len(corr_matrix)))
ax.set_xticklabels(corr_matrix.columns)
ax.set_yticklabels(corr_matrix.columns)
plt.setp(ax.get_xticklabels(), rotation=45, ha="right", rotation_mode="anchor")

# 添加數值標注

for i in range(len(corr_matrix)): for j in range(len(corr_matrix)):
text = ax.text(j, i, round(corr_matrix.iloc[i, j], 2), ha="center", va="center", color="w")

# 設置圖表標題

ax.set_title("Correlation Matrix")

# 顯示圖表

plt.show()

自動分析

魔法命令

數據表 iris_df 存在Pandas中,結構如下 - sepal length (cm), 類型 float64 - sepal width (cm), 類型 float64 - petal length (cm), 類型 float64 - petal width (cm), 類型 float64 - target, 類型 int64

寫(xie) 出Python代碼,使用matplotlib中3種方法分析每列與(yu) 標簽的分布關(guan) 係

ChatGPT輸出

# 方法1:散點圖 fig, axs = plt.subplots(2, 2, figsize=(10, 8)) axs[0, 0].scatter(iris_df['sepal length (cm)'], iris_df['target']) axs[0, 0].set_xlabel('sepal length (cm)') axs[0, 0].set_ylabel('target') axs[0, 1].scatter(iris_df['sepal width (cm)'], iris_df['target']) axs[0, 1].set_xlabel('sepal width (cm)') axs[0, 1].set_ylabel('target') axs[1, 0].scatter(iris_df['petal length (cm)'], iris_df['target']) axs[1, 0].set_xlabel('petal length (cm)') axs[1, 0].set_ylabel('target') axs[1, 1].scatter(iris_df['petal width (cm)'], iris_df['target']) axs[1, 1].set_xlabel('petal width (cm)') axs[1, 1].set_ylabel('target') plt.show()

# 方法2:箱線圖

fig, axs = plt.subplots(2, 2, figsize=(10, 8))
axs[0, 0].boxplot(iris_df['sepal length (cm)'], vert=False)
axs[0, 0].set_xlabel('sepal length (cm)')
axs[0, 1].boxplot(iris_df['sepal width (cm)'], vert=False)
axs[0, 1].set_xlabel('sepal width (cm)')
axs[1, 0].boxplot(iris_df['petal length (cm)'], vert=False)
axs[1, 0].set_xlabel('petal length (cm)')
axs[1, 1].boxplot(iris_df['petal width (cm)'], vert=False)
axs[1, 1].set_xlabel('petal width (cm)')
plt.show()

# 方法3:直方圖

fig, axs = plt.subplots(2, 2, figsize=(10, 8))
axs[0, 0].hist(iris_df['sepal length (cm)'], bins=20)
axs[0, 0].set_xlabel('sepal length (cm)')
axs[0, 0].set_ylabel('count')
axs[0, 1].hist(iris_df['sepal width (cm)'], bins=20)
axs[0, 1].set_xlabel('sepal width (cm)')
axs[0, 1].set_ylabel('count')
axs[1, 0].hist(iris_df['petal length (cm)'], bins=20)
axs[1, 0].set_xlabel('petal length (cm)')
axs[1, 0].set_ylabel('count')
axs[1, 1].hist(iris_df['petal width (cm)'], bins=20)
axs[1, 1].set_xlabel('petal width (cm)')
axs[1, 1].set_ylabel('count')

場景2:使用seaborn

魔法命令

數據表 iris_df 存在Pandas中,結構如下 - sepal length (cm), 類型 float64 - sepal width (cm), 類型 float64 - petal length (cm), 類型 float64 - petal width (cm), 類型 float64 - target, 類型 int64

寫(xie) 出Python代碼,寫(xie) seaborn中3種方法分析每列與(yu) 標簽的分布關(guan) 係

ChatGPT輸出

# 方法1:散點圖+氣泡圖 sns.scatterplot(x='sepal length (cm)', y='target', data=iris_df, hue='target', size='petal length (cm)', sizes=(20, 200)) plt.xlabel('sepal length (cm)') plt.ylabel('target') plt.show()

# 方法2:小提琴圖

sns.violinplot(x='target', y='sepal length (cm)', data=iris_df)
plt.xlabel('target')
plt.ylabel('sepal length (cm)')
plt.show()

# 方法3:直方圖+核密度圖

sns.histplot(data=iris_df, x="sepal length (cm)", hue="target", element="step", kde=True)
plt.xlabel('sepal length (cm)')
plt.show()

場景3:使用plotly

魔法命令

數據表 iris_df 存在Pandas中,結構如下 - sepal length (cm), 類型 float64 - sepal width (cm), 類型 float64 - petal length (cm), 類型 float64 - petal width (cm), 類型 float64 - target, 類型 int64

寫(xie) 出Python代碼,使用plotly中3種方法分析每列與(yu) 標簽的分布關(guan) 係

ChatGPT輸出

# 方法1: scatter plot fig1 = px.scatter(iris_df, x="sepal length (cm)", y="target", color="target") fig1.show()

# 方法2: histogram

fig5 = px.histogram(iris_df, x="sepal length (cm)", color="target")
fig5.show()

# 方法3: box plot

fig9 = px.box(iris_df, x="target", y="sepal length (cm)")
fig9.show()

其他指南

缺失值分析

數據表 iris_df 存在Pandas中,結構如下 - sepal length (cm), 類型 float64 - sepal width (cm), 類型 float64 - petal length (cm), 類型 float64 - petal width (cm), 類型 float64 - target, 類型 int64

寫(xie) 出Python代碼,使用plotly對數據集進行缺失值分析

探索性分析

數據表 iris_df 存在Pandas中,結構如下 - sepal length (cm), 類型 float64 - sepal width (cm), 類型 float64 - petal length (cm), 類型 float64 - petal width (cm), 類型 float64 - target, 類型 int64

寫(xie) 出Python代碼,使用plotly對數據集進行探索性分析

 

【競賽報名/項目谘詢+微信:mollywei007】

上一篇

紐約大學申請及錄取率分析

下一篇

6年級公立學校女孩三個月托福首考106分

你也可能喜歡

  • 暫無相關文章!

評論已經被關(guan) 閉。

插入圖片
返回頂部