以Pandas創建DataFrame為中心的教程

引言

使用Python進行數據分析是一個日益流行的技能,但是很難想象數據分析能夠沒有Pandas。Pandas是一個基於NumPy的開源數據分析工具,提供了高級數據結構和高效的數據操作工具。在Pandas中,DataFrame是一個非常常見的數據結構,它類似於電子表格或SQL表格,但具有更高的靈活性和功能。在本教程中,我們將以Pandas創建DataFrame為中心,重點介紹如何用Pandas處理和操作數據。

正文

一、創建DataFrame

Pandas的DataFrame是二維數據結構,可以看作是多個Series的集合,其中每個Series代表一個列,所有的列都有相同的行索引。我們可以使用Pandas的函數來創建DataFrame,例如可以用Python列表或NumPy數組作為輸入,然後使用columns參數指定列名。

import pandas as pd
import numpy as np

data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
        'age': [25, 32, 18, 47],
        'gender': ['F', 'M', 'M', 'M']}
df = pd.DataFrame(data, columns=['name', 'age', 'gender'])

上面這段代碼首先定義了一個字典data,其中鍵是列名,值是該列的數據。然後用Pandas的DataFrame函數將字典轉換為DataFrame,指定列名為’ name’、’age’、’gender’。可以通過print(df)輸出DataFrame的內容:

      name  age gender
0    Alice   25      F
1      Bob   32      M
2  Charlie   18      M
3    David   47      M

我們可以看到,Pandas會默認為DataFrame分配行索引(0到n-1,其中n是行數)。

二、選擇和過濾數據

在Pandas中,可以使用loc屬性和iloc屬性來選擇和過濾數據。iloc按行索引選擇數據,loc按標籤選擇數據。

例如,我們希望選擇第1行和第3行以及’age’和’gender’列:

df.iloc[[0, 2]][['age', 'gender']]

注意,行索引從0開始,因此我們通過[0, 2]選擇第1行和第3行。輸出結果如下:

   age gender
0   25      F
2   18      M

另外,我們也可以選擇年齡大於20歲的行:

df[df['age'] > 20]

輸出結果如下:

      name  age gender
1      Bob   32      M
3    David   47      M

三、數據聚合和分組

數據聚合是指將多行數據合併為一行數據的過程。在Pandas中,可以使用groupby函數來實現對數據的分組和聚合。

例如,假設我們有一組數據,存儲不同電影類型的票房數據,我們可以使用groupby函數對電影類型進行分組,並計算每個類型的票房總額:

data = {'genre': ['Action', 'Action', 'Comedy', 'Comedy'],
        'sales': [10000000, 8000000, 6000000, 9000000]}
df = pd.DataFrame(data, columns=['genre', 'sales'])

grouped_df = df.groupby(['genre']).sum()

上面這段代碼首先定義了一個字典data,其中包含電影類型和電影票房的數據。然後用Pandas的groupby函數根據電影類型對數據進行分組,並對每個分組的值進行求和。可以通過print(grouped_df)輸出聚合後的結果:

            sales
genre            
Action   18000000
Comedy   15000000

四、數據合併與連接

在數據處理中,常常需要將多個數據源合併或連接在一起。在Pandas中,可以使用merge和concat函數實現數據合併和連接。

例如,我們有兩個DataFrame,分別存儲不同用戶的收入和支出數據。我們可以使用merge函數根據用戶ID合併兩個DataFrame:

income_data = {'user_id': [1, 2, 3, 4],
               'income': [5000, 8000, 7000, 9000]}
income_df = pd.DataFrame(income_data)

expense_data = {'user_id': [1, 2, 3, 4],
                'expense': [3000, 2000, 4000, 6000]}
expense_df = pd.DataFrame(expense_data)

merged_df = pd.merge(income_df, expense_df, on='user_id')

上面這段代碼定義了兩個字典income_data和expense_data,其中包含用戶ID和收入、支出的數據。然後用Pandas的merge函數將兩個DataFrame合併成一個DataFrame,通過user_id列進行連接。可以通過print(merged_df)輸出合併後的DataFrame:

   user_id  income  expense
0        1    5000     3000
1        2    8000     2000
2        3    7000     4000
3        4    9000     6000

結論

本教程重點介紹了如何用Pandas創建DataFrame,選擇和過濾數據,進行數據聚合和分組,以及數據合併和連接。這些都是Pandas中非常常見的操作。對於幾乎所有的數據處理任務,Pandas都提供了簡單而強大的工具。這使得Pandas成為數據科學從業者的必備技能。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/249752.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 17:11
下一篇 2024-12-12 17:11

相關推薦

  • MQTT使用教程

    MQTT是一種輕量級的消息傳輸協議,適用於物聯網領域中的設備與雲端、設備與設備之間的數據傳輸。本文將介紹使用MQTT實現設備與雲端數據傳輸的方法和注意事項。 一、準備工作 在使用M…

    編程 2025-04-29
  • Python3.6.5下載安裝教程

    Python是一種面向對象、解釋型計算機程序語言。它是一門動態語言,因為它不會對程序員提前聲明變量類型,而是在變量第一次賦值時自動識別該變量的類型。 Python3.6.5是Pyt…

    編程 2025-04-29
  • ArcGIS更改標註位置為中心的方法

    本篇文章將從多個方面詳細闡述如何在ArcGIS中更改標註位置為中心。讓我們一步步來看。 一、禁止標註智能調整 在ArcMap中設置標註智能調整可以自動將標註位置調整到最佳顯示位置。…

    編程 2025-04-29
  • Deepin系統分區設置教程

    本教程將會詳細介紹Deepin系統如何進行分區設置,分享多種方式讓您了解如何規劃您的硬盤。 一、分區的基本知識 在進行Deepin系統分區設置之前,我們需要了解一些基本分區概念。 …

    編程 2025-04-29
  • 寫代碼新手教程

    本文將從語言選擇、學習方法、編碼規範以及常見問題解答等多個方面,為編程新手提供實用、簡明的教程。 一、語言選擇 作為編程新手,選擇一門編程語言是很關鍵的一步。以下是幾個有代表性的編…

    編程 2025-04-29
  • CPU爆滿怎麼解決 Java為中心

    在Java編程中,難免會遇到CPU佔用過高的情況,接下來從多個方面介紹如何解決CPU爆滿問題。 一、優化代碼 1、減少循環次數。循環體內不要放太多邏輯判斷和計算,可以把計算提取出來…

    編程 2025-04-29
  • Qt雷達探測教程

    本文主要介紹如何使用Qt開發雷達探測程序,並展示一個簡單的雷達探測示例。 一、環境準備 在開始本教程之前,需要確保你的開發環境已經安裝Qt和Qt Creator。如果沒有安裝,可以…

    編程 2025-04-29
  • CMD如何升級為中心?

    本文將詳細介紹在Windows操作系統下如何將CMD升級為中心,以及如何在升級後使用CMD中心進行操作。 一、下載Windows Terminal Windows Terminal…

    編程 2025-04-29
  • 猿編程python免費全套教程400集

    想要學習Python編程嗎?猿編程python免費全套教程400集是一個不錯的選擇!下面我們來詳細了解一下這個教程。 一、課程內容 猿編程python免費全套教程400集包含了從P…

    編程 2025-04-29
  • 如何使用GPU加速運行Python程序——以CSDN為中心

    GPU的強大性能是眾所周知的。而隨着深度學習和機器學習的發展,越來越多的Python開發者將GPU應用於深度學習模型的訓練過程中,提高了模型訓練效率。在本文中,我們將介紹如何使用G…

    編程 2025-04-29

發表回復

登錄後才能評論