亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python基礎教程之Pandas數據分析庫詳解

 更新時間:2023年07月17日 11:31:13   作者:陸理手記  
Pandas是一個基于 NumPy 的非常強大的開源數據處理庫,它提供了高效、靈活和豐富的數據結構和數據分析工具,本文中,我們將學習如何使用Pandas來處理和分析數據,感興趣的小伙伴跟著小編一起來看看吧

首先,我們需要安裝Pandas庫。您可以使用以下命令來安裝它:

pip install pandas

安裝完成后,我們可以開始使用Pandas了。首先,讓我們導入Pandas庫:

import pandas as pd

Pandas 的兩個主要的數據結構是 Series 和 DataFrame。Series 是一維數組,可以存儲任意類型的數據;DataFrame 是二維表格數據結構,可以看做是一系列 Series 對象的集合,每個 Series 對象代表一列數據。下面我們來學習下這兩種數據結構。

1.Series

Series是Pandas中的一維數據結構,類似于一維數組或列表。它可以存儲任何數據類型,并且每個元素都有一個與之關聯的標簽,稱為索引。 在創(chuàng)建一個 Series 時,我們可以通過指定索引來為每個元素進行命名,這樣一來就可以通過索引來訪問和操作這些元素。在訪問 Series 中的元素時,我們同樣需要使用索引來指定要訪問的位置。

以下是創(chuàng)建Series的一個示例:

import pandas as pd
import numpy as np
data = pd.Series([1, 3, 5, np.nan, 6, 8])
# 自建索引
data = pd.Series([1, 3, 5, np.nan, 6, 8], index)
# 通過字典直接創(chuàng)建帶索引的數據
data = pd.Series({0: 1, 1: 3, 2: 5, 3: np.nan, 4: 6, 5: 8 })
print(data)

輸出結果:

0    1.0
1    3.0
2    5.0
3    NaN
4    6.0
5    8.0
dtype: float64

在上面的示例中,我們創(chuàng)建了一個包含整數和NaN值的Series??梢钥吹?,每個元素都有一個索引。與傳統的數組和列表不同,Pandas 的索引可以是任意數據類型,包括整數、字符串、日期等。索引有助于對數據進行標記和命名,使得數據的訪問更加方便和直觀。

在 Pandas 的 DataFrame 中,索引的作用更加重要。除了可以為每一行和每一列指定索引外,DataFrame 還支持多級索引,也就是可以為行和列同時指定多個索引。這為多維數據的處理提供了更多的靈活性和功能性。通過索引,我們可以輕松地從 DataFrame 中選擇特定的行數和列數,我們可以通過指定行索引和列索引來選擇任意子集的數據,也可以通過使用條件表達式來篩選滿足特定條件的數據。 

2.DataFrame

DataFrame是Pandas中的二維數據結構,類似于Excel表格或SQL表。它由行和列組成,并且可以存儲不同類型的數據。在Pandas中,我們可以使用pd.DataFrame()函數來創(chuàng)建DataFrame。在這個函數中,我們可以通過參數columns來指定DataFrame的列索引,也就是字段名或列名。通過這個參數,我們可以定義每一列的名稱,方便后續(xù)對數據框中的數據進行索引和操作。

如果我們想要自定義索引值,可以在pd.DataFrame()函數中使用參數index來實現。通過指定index參數,我們可以為每一行指定一個唯一的標識符,可以是字符串、整數或其他數據類型。這樣一來,就可以更靈活地根據指定的索引值來獲取和操作數據框中的數據。通過這種方式,我們可以根據具體的需求來定義數據框的索引,并且能夠更好地滿足我們對數據的處理和分析的需求。

以下是創(chuàng)建DataFrame的一個示例:

import pandas as pd
data = {'name': ['John', 'Emma', 'Mike', 'Lisa'],
        'age': [28, 24, 32, 35],
        'city': ['New York', 'London', 'Paris', 'Tokyo']}
df = pd.DataFrame(data)
print(df)
# 通過columns指定DataFrame的列索引
data = [[1,'Bob', 24, 'American'],[2, 'Nancy', 23, 'Australia'],[3, 'Lili', 22, 'China'],[4, 'Leo', 27, 'M78'],[5, 'David', 24, 'moon']]
df = pd.DataFrame(data, columns=['serial', 'name', 'age', 'from',])
# 自定義索引
df = pd.DataFrame(data, columns=['serial', 'name', 'age', 'from'], index=['a','b','c','d','e'])
print(df)

輸出結果:

   name  age      city
0  John   28  New York
1  Emma   24    London
2  Mike   32     Paris
3  Lisa   35     Tokyo

   serial   name  age       from
a       1    Bob   24   American
b       2  Nancy   23  Australia
c       3   Lili   22      China
d       4    Leo   27        M78
e       5  David   24       moon

在上面的示例中,我們使用一個字典來創(chuàng)建DataFrame。字典的鍵是列名,而字典的值是該列的數據。同樣地,我們也使用了列表來創(chuàng)建data,這個嵌套列表中每一個子列表為 DataFrame 的一行,是不是和我們創(chuàng)建上面Series有點異曲同工?實際上, DataFrame 的每一行或者每一列都可以看作一個 Series。 接下來,讓我們看一些常用的數據操作和分析技巧。

3. 數據操作

3.1 選擇和過濾

Pandas提供了多種方法來選擇和過濾數據。以下是一些常用的方法:

#選擇列:可以使用列名或列索引來選擇列。
df['name']
#選擇行:可以使用行索引來選擇行。
df.loc['a']
#過濾行:可以使用條件表達式來過濾行。
df[df['age'] > 30]
# 切片方式訪問
print(df.iloc[1:3])  # 訪問第二行到第三行數據

輸出的結果如下:

a      Bob
b    Nancy
c     Lili
d      Leo
e    David
Name: name, dtype: object

serial           1
name           Bob
age             24
from      American
Name: a, dtype: object

   serial   name  age      from
a       1    Bob   24  American
d       4    Leo   27       M78
e       5  David   24      moon

   serial   name  age       from
b       2  Nancy   23  Australia
c       3   Lili   22      China

3.2 數據排序

Pandas提供了排序數據的功能。以下是一個示例:

df = df.sort_values(by='age', ascending=False)
print(df)

在上面的示例中,我們按照年齡列對數據進行降序排序。輸出結果如下:

   serial   name  age       from
d       4    Leo   27        M78
a       1    Bob   24   American
e       5  David   24       moon
b       2  Nancy   23  Australia
c       3   Lili   22      China

3.3 數據聚合

Pandas提供了聚合數據的功能。假設我們上述的示例中增加一個為年級(grade),

data = [[1,'Bob', 24, 'American', 'high-school'],[2, 'Nancy', 23, 'Australia', 'college'],[3, 'Lili', 22, 'China', 'college'],[4, 'Leo', 27, 'M78', 'university'],[5, 'David', 24, 'moon', 'high-school']]
df = pd.DataFrame(data, columns=['serial', 'name', 'age', 'from', 'grade'], index=['a','b','c','d','e'])
# 聚合,按grade分組,并計算分組后的平均年齡
xdf = df.groupby('grade')['age'].mean()
print(xdf)

輸出結果如下:

grade
college        22.5
high-school    24.0
university     27.0
Name: age, dtype: float64

在上面的示例中,我們按照年級列對數據進行分組,并計算每個年級的平均年齡。

3.4 數據可視化

Pandas還提供了數據可視化的功能。以下是一個示例:

# 此處需引入matplotlib
import matplotlib.pyplot as plot
df.plot(kind='bar', x='name', y='age')
plot.show() # 顯示圖像

在上面的示例中,我們使用柱狀圖來可視化姓名和年齡數據。這只是Pandas的一小部分功能。它還提供了許多其他功能,如數據清洗、缺失值處理、數據合并、數據透視表等。

4.一些高級用法

4.1 多級索引

Pandas的多級索引功能非常強大,它允許我們在一個DataFrame中創(chuàng)建復雜的層次結構索引,從而更靈活地組織和分析數據。一個常見的應用場景是使用多級索引來表示時間序列數據,比如將年份和季度作為索引的兩個層級。

通過創(chuàng)建多級索引,我們可以將數據按照不同的層級進行劃分和聚合。例如,我們可以根據年份來對數據進行分組,然后在每個年份內再按照季度進行分組。這樣,我們可以更方便地進行各種統計分析,比如計算每個季度的平均值、總和等。

import pandas as pd
# 創(chuàng)建多級索引
index = pd.MultiIndex.from_tuples([('2019', 'Q1'), ('2019', 'Q2'), ('2020', 'Q1'), ('2020', 'Q2')])
data = pd.DataFrame({'Sales': [100, 200, 150, 250]}, index=index)
# 查詢特定季度的銷售數據
print(data.loc[('2020', 'Q1')])
# 查詢特定年份的銷售數據
print(data.loc['2020'])

輸出結果如下:

Sales    150
Name: (2020, Q1), dtype: int64
    Sales
Q1    150
Q2    250

在創(chuàng)建多級索引時,我們可以使用Pandas的MultiIndex類來指定索引的層級和標簽。通過指定層級的名稱和對應的標簽值,我們可以輕松地創(chuàng)建一個具有多級索引的DataFrame。

使用多級索引可以帶來很多好處,比如提高數據的查詢效率、簡化數據的操作和分析等。但同時,也需要注意在使用多級索引時,要避免索引混淆和數據結構復雜度過高的問題。因此,在使用多級索引時,需要根據具體的需求和數據特點來靈活應用。

4.2 透視表

透視表是一種根據數據中的一個或多個列創(chuàng)建匯總表格的方法。Pandas提供了pivot_table函數,可以方便地對數據進行聚合和分析。 通過pivot_table函數,我們可以指定一個或多個列作為行索引,另一個或多個列作為列索引,然后根據指定的聚合函數對數據進行匯總。這樣,我們就可以快速計算出各個行和列對應的統計量,比如平均值、總和、計數等。

import pandas as pd
# 創(chuàng)建一個包含銷售數據的DataFrame
data = pd.DataFrame({'Year': ['2019', '2019', '2020', '2020'],
                      'Quarter': ['Q1', 'Q2', 'Q1', 'Q2'],
                      'Product': ['A', 'B', 'A', 'B'],
                      'Sales': [100, 200, 150, 250]})
# 創(chuàng)建透視表
pivot_table = data.pivot_table(index='Year', columns='Quarter', values='Sales', aggfunc='sum')
# 打印透視表
print(pivot_table)

輸出如下:

Quarter   Q1   Q2
Year
2019     100  200
2020     150  250

Pandas的透視表功能為我們提供了一種方便、靈活的數據聚合和分析方法,可以幫助我們更好地理解和利用數據。透視表的好處在于它提供了一種直觀、簡潔的方式來查看和分析數據。通過透視表,我們可以輕松地對數據進行切片、切塊和篩選,從而更深入地了解數據的特征和關系。

使用透視表時,我們可以根據具體的需求選擇合適的聚合函數、行列索引和篩選條件,以獲取我們想要的分析結果。透視表不僅適用于單個DataFrame,還可以用于多個DataFrame的合并和分析。

4.3 時間序列分析

在處理時間序列數據方面,Pandas提供了靈活且高效的功能。它的日期和時間處理功能包括日期范圍生成、日期索引、日期加減運算、日期格式化等。你可以輕松地創(chuàng)建日期范圍,并使用這些日期作為數據的索引,便于對時間序列數據進行操作和分析。

Pandas還支持重采樣操作,可以將時間序列數據從一個頻率轉換為另一個頻率。例如,你可以將按天采樣的數據轉換為按月采樣的數據,或者將按小時采樣的數據轉換為按分鐘采樣的數據。重采樣功能允許你根據需要靈活地調整數據的粒度和頻率。

 import pandas as pd
# 創(chuàng)建一個包含時間序列數據的DataFrame
 data = pd.DataFrame({'Date': pd.date_range(start='2020-01-01', periods=10),
                      'Sales': [100, 200, 150, 250, 180, 120, 300, 350, 400, 250]})
# 將日期列設置為索引
 data.set_index('Date', inplace=True)
# 計算每周銷售總額
 weekly_sales = data.resample('W').sum()
# 打印每周銷售總額
 print(weekly_sales)

輸出結果如下:

            Sales
Date
2020-01-05    880
2020-01-12   1420

此外,Pandas提供了滑動窗口操作,可以在時間序列數據上執(zhí)行滑動窗口統計計算。你可以定義窗口的大小和滑動的步長,并針對窗口內的數據進行匯總、聚合或其他計算操作。這對于處理時間序列數據中的移動平均值、滾動求和等任務非常有用。

5. Pandas處理Excel文件

當使用Pandas處理Excel文件時,你可以使用read_excel()函數來讀取Excel數據,并將其加載到一個DataFrame中。下面是一個簡單的示例:

import pandas as pd
# 讀取Excel文件
df = pd.read_excel('data.xlsx', sheet_name='Sheet1')
# 顯示DataFrame的前幾行數據
print(df.head())

在這個例子中,我們假設存在一個名為"data.xlsx"的Excel文件,其中包含一個名為"Sheet1"的工作表。通過調用read_excel()函數,我們將這個Excel文件讀取并加載到名為df的DataFrame中。然后,我們使用head()方法顯示DataFrame的前幾行數據。

接下來,我們可以對讀取的數據進行各種操作和處理。下面是一些常見的操作示例:

# 篩選特定列數據
selected_columns = ['Name', 'Age']
filtered_data = df[selected_columns]
# 按條件篩選數據
condition = df['Age'] > 25
filtered_data = df[condition]
# 數據排序
sorted_data = df.sort_values(by='Age', ascending=False)
# 添加新列
df['Gender'] = ['Male', 'Female', 'Male', 'Female', 'Male']
# 寫入到新的Excel文件
df.to_excel('new_data.xlsx', index=False)

在上述示例中,我們展示了一些常見的操作。例如,我們篩選了特定列的數據、根據條件篩選數據、對數據進行排序,并在DataFrame中添加了新的列。最后,我們使用to_excel()方法將處理后的數據寫入到一個名為"new_data.xlsx"的新Excel文件中。

這只是Pandas處理Excel文件的一小部分功能示例。Pandas提供了更多強大且靈活的功能,可以幫助你根據具體需求對Excel數據進行處理、清洗和分析。

6. 總結

本文這些示例只是Pandas應用的一小部分,只是為了使我們在學習中對Pandas有初步的了解。Pandas還提供了許多其他強大的功能,使數據分析和處理更加便捷。下面是一些擴展的Pandas功能:

  • 合并數據:Pandas提供了多種方法來合并不同的數據集,例如使用merge()函數按照指定的列將多個DataFrame進行合并,使用concat()函數沿著指定軸將多個DataFrame堆疊在一起,以及使用join()函數根據索引或列的值進行連接。

  • 拆分數據:你可以使用split()函數將包含多個值的單個列拆分成多個列,從而使數據更加規(guī)整和易于處理。

  • 過濾數據:Pandas提供了各種方法來篩選和過濾數據,如使用布爾條件進行行過濾,使用filter()函數根據列名進行列過濾,以及使用query()函數根據指定條件查詢數據。

  • 處理缺失值:在現實數據中,經常會出現缺失值問題。Pandas提供了靈活的方法來處理缺失值,如使用isnull()notnull()函數檢測缺失值,使用dropna()函數刪除包含缺失值的行或列,以及使用fillna()函數填充缺失值。

  • 處理字符串:如果你需要對文本數據進行處理,Pandas提供了一系列處理字符串的方法,如使用str.contains()函數檢測包含特定子串的值,使用str.replace()函數替換字符串,以及使用str.extract()函數提取符合指定模式的字符串。

除了上述功能,Pandas還支持數據透視表、時間序列分析、數據可視化等高級功能。

以上就是Python基礎教程之Pandas數據分析庫詳解的詳細內容,更多關于Python Pandas數據分析庫的資料請關注腳本之家其它相關文章!

相關文章

  • python?與c++相互調用實現

    python?與c++相互調用實現

    這篇文章主要介紹了python?與c++相互調用實現,我們都知道c++運算速度快于python,python又簡單易寫,很多人就會想到將兩者結合,接下倆小編要給大家介紹的就是python?與c++相互調用實現,,需要的朋友可以參考一下
    2022-03-03
  • 詳解Django中六個常用的自定義裝飾器

    詳解Django中六個常用的自定義裝飾器

    這篇文章主要介紹了詳解Django中六個常用的自定義裝飾器,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07
  • 60行Python PyGame代碼實現簡單的迷宮游戲

    60行Python PyGame代碼實現簡單的迷宮游戲

    這篇文章主要為大家詳細介紹如何通過了60行Python PyGame代碼實現一個簡單的迷宮游戲,文中的示例代碼講解詳細,感興趣的小伙伴可以了解下
    2023-12-12
  • python可視化大屏庫big_screen示例詳解

    python可視化大屏庫big_screen示例詳解

    提到數據可視化,我們會想到 Plotly、Matplotlib、Pyecharts等可視化庫,或者一些商用軟件Tableau、FineBI等等。如果你希望操作更簡單、展現效果更強大,那么這款工具 big_screen 更適合
    2021-11-11
  • Windows下安裝python MySQLdb遇到的問題及解決方法

    Windows下安裝python MySQLdb遇到的問題及解決方法

    這篇文章主要介紹了Windows下安裝python MySQLdb遇到的問題及解決方法,需要的朋友可以參考下
    2017-03-03
  • tensorflow下的圖片標準化函數per_image_standardization用法

    tensorflow下的圖片標準化函數per_image_standardization用法

    這篇文章主要介紹了tensorflow下的圖片標準化函數per_image_standardization用法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • python next()和iter()函數原理解析

    python next()和iter()函數原理解析

    這篇文章主要介紹了python next()和iter()函數原理解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-02-02
  • 詳解python中各種文件打開模式

    詳解python中各種文件打開模式

    在python中,總的來說有三種大的模式打開文件,分別是:a, w, r,這篇文章主要介紹了python中各種文件打開模式,需要的朋友可以參考下
    2020-01-01
  • OpenCV實現單目攝像頭對圖像目標測距

    OpenCV實現單目攝像頭對圖像目標測距

    這篇文章主要為大家詳細介紹了OpenCV實現單目攝像頭對圖像目標測距,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • Python實現WGS84火星百度及web墨卡托四種坐標系相互轉換

    Python實現WGS84火星百度及web墨卡托四種坐標系相互轉換

    主流被使用的地理坐標系并不統一,常用的有WGS84、GCJ02(火星坐標系)、BD09(百度坐標系)以及百度地圖中保存矢量信息的web墨卡托,本文利用Python編寫相關類以實現4種坐標系統之間的互相轉換
    2023-08-08

最新評論