搜尋
首頁後端開發Python教學如何使用OpenAI API在Python中進行數據分析

How to Perform Data Analysis in Python Using the OpenAI API

核心要點

  • 利用Python和OpenAI API,用戶可以系統地分析數據集以獲得有價值的見解,而無需過度設計代碼或浪費時間,為數據分析提供了一種通用的解決方案。
  • OpenAI API和Python可用於分析文本文件(例如英偉達最新的財報電話會議),通過從記錄中提取指定信息並打印出來。
  • OpenAI API和Python還可以分析CSV文件(例如Medium文章數據集),以查找每篇文章的整體基調、主要教訓/要點以及0到3的“點擊誘餌評分”(0表示無點擊誘餌, 3表示極度點擊誘餌)。
  • 為了自動分析多個文件,用戶可以將它們放在一個文件夾中,安裝glob庫,並使用for循環讀取每個文件的內容,並將每個文件分析的輸出保存到單獨的文件中。

本教程將指導您如何使用Python和OpenAI API對數據進行數據挖掘和分析。

手動分析數據集以提取有用數據,甚至使用簡單的程序執行相同的操作,通常會變得複雜且耗時。幸運的是,借助OpenAI API和Python,可以系統地分析數據集以獲取有趣的信息,而無需過度設計代碼和浪費時間。這可以用作數據分析的通用解決方案,無需使用不同的方法、庫和API來分析不同類型的數據和數據集中的數據點。

讓我們逐步了解如何使用OpenAI API和Python分析您的數據,首先是如何進行設置。

設置

要通過Python使用OpenAI API挖掘和分析數據,請安裝openai和pandas庫:

pip3 install openai pandas

完成此操作後,創建一個新文件夾,並在新文件夾中創建一個空的Python文件。

分析文本文件

在本教程中,我認為讓Python分析英偉達最新的財報電話會議會很有趣。

下載我從The Motley Fool獲得的最新英偉達財報電話會議記錄,並將其移動到您的項目文件夾中。

然後打開您的空Python文件並添加此代碼。

該代碼讀取您下載的英偉達財報記錄,並將其作為transcript變量傳遞給extract_info函數。

extract_info函數將提示和記錄作為用戶輸入傳遞,以及temperature=0.3和model="gpt-3.5-turbo-16k"。它使用“gpt-3.5-turbo-16k”模型的原因是它可以處理此記錄等大型文本。該代碼使用openai.ChatCompletion.create端點獲取響應,並將prompt和transcript變量作為用戶輸入傳遞:

completions = openai.ChatCompletion.create(
    model="gpt-3.5-turbo-16k",
    messages=[
        {"role": "user", "content": prompt+"\n\n"+text}
    ],
    temperature=0.3,
)

完整的輸入將如下所示:

<code>从文本中提取以下信息:
    英伟达的收入
    英伟达本季度做了什么
    关于人工智能的评论

英伟达财报记录在此处</code>

現在,如果我們將輸入傳遞給openai.ChatCompletion.create端點,完整的輸出將如下所示:

pip3 install openai pandas

如您所見,它返回文本響應以及請求的令牌使用情況,如果您正在跟踪支出和優化成本,這將非常有用。但由於我們只對響應文本感興趣,因此我們通過指定completions.choices[0].message.content響應路徑來獲取它。

如果您運行代碼,您應該會得到與下面引用的內容類似的輸出:

從文本中,我們可以提取以下信息:

  1. 英偉達的收入:在2024財年第二季度,英偉達報告創紀錄的第二季度收入為135.1億美元,環比增長88%,同比增長101%。
  2. 英偉達本季度做了什麼:英偉達在各個領域都取得了顯著增長。他們在數據中心部門的收入創下紀錄,環比增長141%,同比增長171%。他們的遊戲部門也實現了增長,收入環比增長11%,同比增長22%。此外,他們的專業可視化部門的收入環比增長了28%。他們還宣布與Snowflake、ServiceNow、埃森哲、Hugging Face、VMware和軟銀等公司建立合作夥伴關係和合作關係。
  3. 關於人工智能的評論:英偉達強調了對其人工智能平台和加速計算解決方案的強勁需求。他們提到了主要雲服務提供商和消費互聯網公司部署其HGX系統的情況。他們還討論了生成式人工智能在各個行業的應用,例如營銷、媒體和娛樂。英偉達強調了生成式人工智能創造新的市場機遇和提高不同部門生產力的潛力。

如您所見,代碼提取了提示中指定的信息(英偉達的收入、英偉達本季度做了什麼以及關於人工智能的評論)並打印出來。

分析CSV文件

分析財報電話會議記錄和文本文件很酷,但是要係統地分析大量數據,您需要使用CSV文件。

作為一個工作示例,下載此Medium文章CSV數據集並將其粘貼到您的項目文件中。

如果您查看CSV文件,您會看到它具有“作者”、“點贊數”、“閱讀時間”、“鏈接”、“標題”和“文本”列。為了使用OpenAI分析媒體文章,您只需要“標題”和“文本”列。

在您的項目文件夾中創建一個新的Python文件,然後粘貼此代碼。

此代碼與我們用於分析文本文件的代碼略有不同。它逐行讀取CSV,提取指定的信息片段,並將它們添加到新列中。

在本教程中,我選擇了一個Medium文章的CSV數據集,我從Kaggle上的HSANKESARA那裡獲得。此CSV分析代碼將使用CSV文件的“標題”和“文章”列查找每篇文章的整體基調和主要教訓/要點。由於我總是在Medium上遇到點擊誘餌文章,所以我認為讓它通過為每篇文章提供0到3的“點擊誘餌評分”(0表示無點擊誘餌,3表示極度點擊誘餌)來判斷每篇文章的“點擊誘餌”程度也很有趣。

在我解釋代碼之前,分析整個CSV文件將花費太長時間並消耗過多的API積分,因此在本教程中,我使代碼僅使用df = df[:5]分析前五篇文章。

您可能對代碼的以下部分感到困惑,因此讓我解釋一下:

pip3 install openai pandas

此代碼迭代CSV文件中的所有文章(行),並在每次迭代時獲取每篇文章的標題和正文,並將其傳遞給我們之前看到的extract_info函數。然後,它使用以下代碼將extract_info函數的響應轉換為列表以使用此代碼分離不同的信息片段:

completions = openai.ChatCompletion.create(
    model="gpt-3.5-turbo-16k",
    messages=[
        {"role": "user", "content": prompt+"\n\n"+text}
    ],
    temperature=0.3,
)

接下來,它將每個信息片段添加到列表中,如果出現錯誤(如果沒有值),則將“無結果”添加到列表中:

<code>从文本中提取以下信息:
    英伟达的收入
    英伟达本季度做了什么
    关于人工智能的评论

英伟达财报记录在此处</code>

最後,在for循環結束後,包含提取信息的列表將插入到CSV文件中的新列中:

{
  "choices": [
    {
      "finish_reason": "stop",
      "index": 0,
      "message": {
        "content": "实际响应",
        "role": "assistant"
      }
    }
  ],
  "created": 1693336390,
  "id": "request-id",
  "model": "gpt-3.5-turbo-16k-0613",
  "object": "chat.completion",
  "usage": {
    "completion_tokens": 579,
    "prompt_tokens": 3615,
    "total_tokens": 4194
  }
}

如您所見,它將列表添加到名為“Tone”、“Main_lesson_or_point”和“Clickbait_score”的新CSV列中。

然後使用index=False將它們附加到CSV文件中:

for di in range(len(df)):
    title = titles[di]
    abstract = articles[di]
    additional_params = extract_info('Title: '+str(title) + '\n\n' + 'Text: ' + str(abstract))
    try:
        result = additional_params.split("\n\n")
    except:
        result = {} 

必須指定index=False的原因是避免每次將新列附加到CSV文件時都創建新的索引列。

現在,如果您運行Python文件,等待它完成並在CSV文件查看器中檢查我們的CSV文件,您將看到新列,如下圖所示。

How to Perform Data Analysis in Python Using the OpenAI API

如果您多次運行代碼,您會注意到生成的答案略有不同。這是因為代碼使用temperature=0.3為其答案添加一些創造性,這對於點擊誘餌等主觀主題非常有用。

處理多個文件

如果您想自動分析多個文件,則需要首先將它們放在一個文件夾中,並確保該文件夾僅包含您感興趣的文件,以防止您的Python代碼讀取不相關的文件。然後,使用pip3 install glob安裝glob庫,並使用import glob在您的Python文件中導入它。

在您的Python文件中,使用此代碼獲取數據文件夾中所有文件的列表:

try:
    result = additional_params.split("\n\n")
except:
    result = {} 

然後將執行分析的代碼放在for循環中:

try:
    apa1.append(result[0])
except Exception as e:
    apa1.append('No result')
try:
    apa2.append(result[1])
except Exception as e:
    apa2.append('No result')
try:
    apa3.append(result[2])
except Exception as e:
    apa3.append('No result')

在for循環中,像這樣讀取文本文件的每個文件的內容:

df = df.assign(Tone=apa1)
df = df.assign(Main_lesson_or_point=apa2)
df = df.assign(Clickbait_score=apa3)

對於CSV文件,也像這樣:

df.to_csv("data.csv", index=False)

此外,請確保使用類似以下內容將每個文件分析的輸出保存到單獨的文件中:

data_files = glob.glob("data_folder/*")

結論

請記住試驗您的temperature參數並根據您的用例進行調整。如果您希望AI生成更具創造性的答案,請提高temperature值;如果您希望它生成更具事實性的答案,請確保降低它。

OpenAI和Python數據分析的結合除了文章和財報電話會議記錄分析之外還有許多應用。例如包括新聞分析、書籍分析、客戶評論分析等等!也就是說,當在大型數據集上測試您的Python代碼時,請確保僅在完整數據集的一小部分上測試它,以節省API積分和時間。

關於用於Python數據分析的OpenAI API的常見問題 (FAQs)

什麼是OpenAI API以及它是如何工作的?

OpenAI API是一個強大的工具,允許開發人員訪問和利用OpenAI模型的功能。它的工作原理是向API端點發送請求,然後API端點處理請求並返回輸出。 API可用於各種任務,包括文本生成、翻譯、摘要等等。它的設計易於使用,具有簡單的界面和清晰的文檔。

我如何將OpenAI API用於數據分析?

OpenAI API可通過利用其機器學習功能來進行數據分析。例如,您可以使用它來分析文本數據、提取見解和進行預測。您可以使用您的數據向API發送請求,它將返回分析結果。這可以使用Python完成,因為API支持Python集成。

使用OpenAI API進行數據分析的好處是什麼?

使用OpenAI API進行數據分析具有多種好處。首先,它允許您利用機器學習的強大功能,而無需構建和訓練您自己的模型,從而節省您的時間和資源。其次,它可以處理大量數據並提供可能難以手動獲得的見解。最後,它靈活且可用於各種數據分析任務。

我如何將OpenAI API與Python集成?

將OpenAI API與Python集成非常簡單。您需要安裝OpenAI Python客戶端,這可以使用pip完成。安裝完成後,您可以在Python腳本中導入OpenAI庫並使用它向API發送請求。您還需要設置您的API密鑰,您可以從OpenAI網站獲取。

使用OpenAI API可以完成哪些任務示例?

OpenAI API可用於各種任務。例如,它可用於文本生成,它可以根據提示生成類似人類的文本。它還可用於翻譯、摘要和情感分析。在數據分析的背景下,它可用於分析文本數據、提取見解和進行預測。

使用OpenAI API有什麼限制?

雖然OpenAI API功能強大,但它確實有一些限制。例如,對您每分鐘可以向API發送的請求數量有限制。此外,API不是免費的,如果您正在處理大量數據,成本可能會增加。最後,雖然API通常是準確的,但它並非完美無缺,結果應作為更廣泛的分析策略的一部分使用。

我如何排除使用OpenAI API時的故障?

如果您在使用OpenAI API時遇到問題,您可以採取以下幾個步驟。首先,檢查錯誤消息,因為它通常會提供有關問題原因的線索。您還可以參考API文檔,其中提供了有關如何使用API和排除常見問題的詳細信息。如果您仍然遇到問題,您可以聯繫OpenAI社區尋求幫助。

OpenAI API的安全級別如何?

OpenAI API的設計考慮了安全性。發送到API的所有數據都在傳輸過程中進行加密,並且OpenAI制定了嚴格的策略來保護您的數據。但是,與任何在線服務一樣,務必負責任地使用API並遵循數據安全最佳實踐。

我可以將OpenAI API用於商業用途嗎?

是的,您可以將OpenAI API用於商業用途。但是,您應該知道使用API會產生成本,並且您應該查看API的服務條款以確保您預期的用途符合規定。

OpenAI API的未來是什麼?

OpenAI API的未來是光明的。 OpenAI正在不斷改進其模型並擴展API的功能。隨著機器學習和人工智能的不斷發展,我們可以預期API將變得更加強大和多功能。

以上是如何使用OpenAI API在Python中進行數據分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
Python與C:學習曲線和易用性Python與C:學習曲線和易用性Apr 19, 2025 am 12:20 AM

Python更易學且易用,C 則更強大但複雜。 1.Python語法簡潔,適合初學者,動態類型和自動內存管理使其易用,但可能導致運行時錯誤。 2.C 提供低級控制和高級特性,適合高性能應用,但學習門檻高,需手動管理內存和類型安全。

Python vs. C:內存管理和控制Python vs. C:內存管理和控制Apr 19, 2025 am 12:17 AM

Python和C 在内存管理和控制方面的差异显著。1.Python使用自动内存管理,基于引用计数和垃圾回收,简化了程序员的工作。2.C 则要求手动管理内存,提供更多控制权但增加了复杂性和出错风险。选择哪种语言应基于项目需求和团队技术栈。

科學計算的Python:詳細的外觀科學計算的Python:詳細的外觀Apr 19, 2025 am 12:15 AM

Python在科學計算中的應用包括數據分析、機器學習、數值模擬和可視化。 1.Numpy提供高效的多維數組和數學函數。 2.SciPy擴展Numpy功能,提供優化和線性代數工具。 3.Pandas用於數據處理和分析。 4.Matplotlib用於生成各種圖表和可視化結果。

Python和C:找到合適的工具Python和C:找到合適的工具Apr 19, 2025 am 12:04 AM

選擇Python還是C 取決於項目需求:1)Python適合快速開發、數據科學和腳本編寫,因其簡潔語法和豐富庫;2)C 適用於需要高性能和底層控制的場景,如係統編程和遊戲開發,因其編譯型和手動內存管理。

數據科學和機器學習的Python數據科學和機器學習的PythonApr 19, 2025 am 12:02 AM

Python在數據科學和機器學習中的應用廣泛,主要依賴於其簡潔性和強大的庫生態系統。 1)Pandas用於數據處理和分析,2)Numpy提供高效的數值計算,3)Scikit-learn用於機器學習模型構建和優化,這些庫讓Python成為數據科學和機器學習的理想工具。

學習Python:2小時的每日學習是否足夠?學習Python:2小時的每日學習是否足夠?Apr 18, 2025 am 12:22 AM

每天學習Python兩個小時是否足夠?這取決於你的目標和學習方法。 1)制定清晰的學習計劃,2)選擇合適的學習資源和方法,3)動手實踐和復習鞏固,可以在這段時間內逐步掌握Python的基本知識和高級功能。

Web開發的Python:關鍵應用程序Web開發的Python:關鍵應用程序Apr 18, 2025 am 12:20 AM

Python在Web開發中的關鍵應用包括使用Django和Flask框架、API開發、數據分析與可視化、機器學習與AI、以及性能優化。 1.Django和Flask框架:Django適合快速開發複雜應用,Flask適用於小型或高度自定義項目。 2.API開發:使用Flask或DjangoRESTFramework構建RESTfulAPI。 3.數據分析與可視化:利用Python處理數據並通過Web界面展示。 4.機器學習與AI:Python用於構建智能Web應用。 5.性能優化:通過異步編程、緩存和代碼優

Python vs.C:探索性能和效率Python vs.C:探索性能和效率Apr 18, 2025 am 12:20 AM

Python在開發效率上優於C ,但C 在執行性能上更高。 1.Python的簡潔語法和豐富庫提高開發效率。 2.C 的編譯型特性和硬件控制提升執行性能。選擇時需根據項目需求權衡開發速度與執行效率。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱工具

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。