国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Python 數(shù)據(jù)處理與分析之 Pandas 庫(kù)

這篇具有很好參考價(jià)值的文章主要介紹了Python 數(shù)據(jù)處理與分析之 Pandas 庫(kù)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

介紹

  • Pandas(Python Data Analysis Library)是一個(gè)流行的 Python 第三方庫(kù),是數(shù)據(jù)處理和數(shù)據(jù)分析中不可或缺的工具之一,用于數(shù)據(jù)處理和數(shù)據(jù)分析。
  • 它提供了高效的數(shù)據(jù)分析方法和靈活且高效的數(shù)據(jù)結(jié)構(gòu)。相比于其他的數(shù)據(jù)處理庫(kù),pandas更適用于處理具有關(guān)系型數(shù)據(jù)或者帶標(biāo)簽數(shù)據(jù)的情況,在時(shí)間序列分析方面也有著不錯(cuò)的表現(xiàn)。
  • 如果需要進(jìn)行數(shù)據(jù)操作、清理、轉(zhuǎn)換和分析,Pandas 通常是一個(gè)非常有用的工具。

核心數(shù)據(jù)類型

Series

  • Series :是 Pandas 中的一維數(shù)據(jù)結(jié)構(gòu),類似于一維數(shù)組或列表。

    Series 可以存儲(chǔ)任何數(shù)據(jù)類型,并且每個(gè)元素都有一個(gè)與之關(guān)聯(lián)的標(biāo)簽,稱為索引。 索引有助于對(duì)數(shù)據(jù)進(jìn)行標(biāo)記和命名,使得數(shù)據(jù)的訪問更加方便和直觀。

    與傳統(tǒng)的數(shù)組和列表不同,Pandas 的索引可以是任意數(shù)據(jù)類型,包括整數(shù)、字符串、日期等,不同元素的索引也可以是相同的。

    在創(chuàng)建一個(gè) Series 時(shí),可以通過指定索引來為每個(gè)元素進(jìn)行命名,這樣一來就可以通過索引來訪問和操作這些元素。

    在訪問 Series 中的元素時(shí),同樣需要使用索引來指定要訪問的位置。

  • 創(chuàng)建 Series 對(duì)象:

    pandas.Series(data=None, index=None, dtype: Dtype = None, name=None, copy: bool=False, 
                  fastpath: bool = False)
    
    • data:指定 Series 中的數(shù)據(jù),可以是列表、數(shù)組、字典、標(biāo)量值等。必選參數(shù)

    • index:指定 Series 的索引,用于標(biāo)識(shí)和訪問數(shù)據(jù)。

      索引可以是列表、數(shù)組、范圍對(duì)象、標(biāo)量值或其他 Series

      如果沒有顯式指定索引,Pandas 將自動(dòng)生成一個(gè)默認(rèn)的整數(shù)索引

    • dtype:指定 Series 中數(shù)據(jù)的數(shù)據(jù)類型。如果不指定,Pandas 將嘗試自動(dòng)推斷數(shù)據(jù)類型

    • name:指定 Series 的名稱

    • copy:默認(rèn)為 False。如果設(shè)置為 True,則會(huì)復(fù)制數(shù)據(jù),而不是使用原始數(shù)據(jù)的引用。

  • 示例

    import pandas as pd
    import numpy as np
    
    # 創(chuàng)建Series(默認(rèn)索引)
    data = pd.Series([1, np.nan, 6])
    # 創(chuàng)建Series(自建索引)
    data = pd.Series([1, np.nan, 6], index=[0, 3, 4])
    # 創(chuàng)建Series(通過字典直接創(chuàng)建帶索引的數(shù)據(jù))
    data = pd.Series({0: 1, 3: np.nan, 4: 6})
    print(data)
    
    # 輸出結(jié)果
    0    1.0
    3    NaN
    4    6.0
    dtype: float64
    

DataFrame

  • DataFrame :是 Pandas 中的二維數(shù)據(jù)結(jié)構(gòu),類似于 Excel 表格或 SQL 表,由行和列組成,并且可以存儲(chǔ)不同類型的數(shù)據(jù)。

    DataFrame 可以看做是一系列 Series 對(duì)象的集合,每個(gè) Series 對(duì)象代表一列數(shù)據(jù)

    在 DataFrame 中,索引的作用更加重要。除了可以為每一行和每一列指定索引外,DataFrame 還支持多級(jí)索引,也就是可以為行和列同時(shí)指定多個(gè)索引。這為多維數(shù)據(jù)的處理提供了更多的靈活性和功能性。

    通過索引,可以輕松地從 DataFrame 中選擇特定的行數(shù)和列數(shù),可以通過指定行索引和列索引來選擇任意子集的數(shù)據(jù),也可以通過使用條件表達(dá)式來篩選滿足特定條件的數(shù)據(jù)。

  • 創(chuàng)建 DataFrame 對(duì)象:

    pandas.DataFrame(data=None, index=None, dtype: Dtype = None, columns: Axes = None, copy: bool=False)
    
    • data:指定 Series 中的數(shù)據(jù),可以是列表、數(shù)組、字典、標(biāo)量值等。必選參數(shù)

    • index:指定 Series 的索引,用于標(biāo)識(shí)和訪問數(shù)據(jù)。

      索引可以是列表、數(shù)組、范圍對(duì)象、標(biāo)量值或其他 Series

      如果沒有顯式指定索引,Pandas 將自動(dòng)生成一個(gè)默認(rèn)的整數(shù)索引

    • dtype:指定 Series 中數(shù)據(jù)的數(shù)據(jù)類型。如果不指定,Pandas 將嘗試自動(dòng)推斷數(shù)據(jù)類型

    • columns:指定 DataFrame 的列標(biāo)簽,用于標(biāo)識(shí)和訪問列。

      列標(biāo)簽可以是列表、數(shù)組、范圍對(duì)象、標(biāo)量值或其他 Series。

      如果沒有顯式指定列標(biāo)簽,Pandas 將自動(dòng)生成默認(rèn)的整數(shù)列標(biāo)簽。

    • copy:默認(rèn)為 False。如果設(shè)置為 True,則會(huì)復(fù)制數(shù)據(jù),而不是使用原始數(shù)據(jù)的引用。

  • 示例:文章來源地址http://www.zghlxwxcb.cn/news/detail-753187.html

    import pandas as pd
     
    data = {'name': ['John', 'Emma', 'Mike', 'Lisa'],
            'age': [28, 24, 32, 35],
            'city': ['New York', 'London', 'Paris', 'Tokyo']}
    df1 = pd.DataFrame(data)
    
    # 通過columns指定DataFrame的列索引
    data = [[1,'Bob', 24, 'American'],[2, 'Nancy', 23, 'Australia'],[3, 'Lili', 22, 'China'],[4, 'Leo', 27, 'M78'],[5, 'David', 24, 'moon']]
    df2 = pd.DataFrame(data, columns=['serial', 'name', 'age', 'from',])
    
    # 自定義索引
    df3 = pd.DataFrame(data, columns=['serial', 'name', 'age', 'from'], index=['a','b','c','d','e'])
    
    # df1 輸出結(jié)果
       name  age      city
    0  John   28  New York
    1  Emma   24    London
    2  Mike   32     Paris
    3  Lisa   35     Tokyo
    # df3 輸出結(jié)果
       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
    

常用函數(shù)和方法

數(shù)據(jù)導(dǎo)入和導(dǎo)出

Pandas 可以從多種數(shù)據(jù)源導(dǎo)入數(shù)據(jù),包括 CSV、Excel、SQL 數(shù)據(jù)庫(kù)、JSON 等,并且可以將數(shù)據(jù)導(dǎo)出到這些格式。

  • pandas.read_csv() :從 CSV 文件導(dǎo)入數(shù)據(jù),返回一個(gè) DataFrame 對(duì)象(df)

    參數(shù)說明:

    • filepath_or_buffer :CSV 文件路徑或文件對(duì)象。
    • sep :可選,分隔符,默認(rèn)為逗號(hào)
    • header :可選,指定哪一行作為列名,默認(rèn)為第一行
    • index_col :可選,指定哪一列作為索引
  • pandas.read_excel() :從 Excel 文件導(dǎo)入數(shù)據(jù),返回一個(gè) DataFrame 對(duì)象(df)

    參數(shù)說明:

    • io :Excel 文件路徑、文件對(duì)象或 URL
    • sheet_name :可選,工作表名稱
    • header :可選,指定哪一行作為列名,默認(rèn)為第一行
  • df.to_csv() :將數(shù)據(jù)導(dǎo)出為 CSV 文件

    參數(shù)說明:

    • path_or_buf :導(dǎo)出的文件路徑或文件對(duì)象
    • sep :可選,分隔符,默認(rèn)為逗號(hào)
    • index :可選,是否包含索引,默認(rèn)為 True
  • df.to_excel() :將數(shù)據(jù)導(dǎo)出為 Excel 文件

    參數(shù)說明:

    • excel_writer :Excel 文件路徑、文件對(duì)象或 ExcelWriter 對(duì)象
    • sheet_name :可選,工作表名稱
    • index :可選,是否包含索引,默認(rèn)為 True
  • 示例

    import pandas as pd
    # 從CSV文件導(dǎo)入數(shù)據(jù)
    df = pd.read_csv('data.csv')
    # 將數(shù)據(jù)導(dǎo)出到Excel文件
    df.to_excel('data.xlsx', index=False)
    

數(shù)據(jù)處理和轉(zhuǎn)換

Pandas 提供了各種方法來處理缺失數(shù)據(jù)、重復(fù)數(shù)據(jù)、異常數(shù)據(jù),以及進(jìn)行數(shù)據(jù)變換、篩選和合并不同數(shù)據(jù)源的數(shù)據(jù),包括連接、合并和聯(lián)接等操作。

  • df.isnull()df.notnull() :檢測(cè)缺失值

  • df.drop() :刪除行或列

  • df.dropna() :刪除包含缺失值的行

  • df.drop_duplicates() :刪除重復(fù)行

  • df.fillna(value) :填充缺失值

  • df.apply(func) :應(yīng)用函數(shù)到行或列

  • df.groupby(‘column_name’).mean() :分組數(shù)據(jù)(聚合)

  • df.pivot_table() :創(chuàng)建透視表

  • df.melt() :將寬格式數(shù)據(jù)轉(zhuǎn)換為長(zhǎng)格式

  • 示例

    # 聚合操作
    data = [[1,'Bob', 24, 'high-school'],[2, 'Nancy', 23, 'college'],[3, 'Lili', 22, 'college']]
    df = pd.DataFrame(data, columns=['serial', 'name', 'age', 'grade'], index=['a','b','c'])
    # 聚合,按grade分組,并計(jì)算分組后的平均年齡
    xdf = df.groupby('grade')['age'].mean()
    
    # 透視表
    pd.pivot_table(df, values='value_column', index='index_column', columns='column_to_pivot')
    # 應(yīng)用自定義函數(shù)
    df.apply(custom_function, axis=1)
    

數(shù)據(jù)合并和拆分

  • pd.concat() :用于合并行(縱向堆疊)或列(橫向連接)數(shù)據(jù),通常用于連接不同數(shù)據(jù)集的行或列,但不執(zhí)行基于列的合并,不對(duì)數(shù)據(jù)重復(fù)值進(jìn)行檢查或處理,只是簡(jiǎn)單地將數(shù)據(jù)堆疊在一起

    主要參數(shù)說明:

    • objs :要合并的數(shù)據(jù)對(duì)象列表,可以是 DataFrame 或 Series 的列表。唯一的必選參數(shù)

    • axis :指定合并的軸方向。默認(rèn)為 0,表示按行合并(縱向堆疊),如果設(shè)置為 1,表示按列合并(橫向連接)

    • join :指定連接的方式,默認(rèn)為 'outer'??梢匀∫韵轮担?/p>

      • 'outer':執(zhí)行外連接,保留所有的行或列,并使用缺失值填充不存在的數(shù)據(jù)。
      • 'inner':執(zhí)行內(nèi)連接,只保留共有的行或列。
    • ignore_index :默認(rèn)為 False。如果設(shè)置為 True,將忽略原始索引,創(chuàng)建新的連續(xù)整數(shù)索引。

    • keys :用于創(chuàng)建層次化索引的標(biāo)簽,可以是字符串、列表或數(shù)組。如果提供了 keys,將創(chuàng)建 MultiIndex。

    **適用場(chǎng)景:**主要用于簡(jiǎn)單的數(shù)據(jù)堆疊操作,合并來自不同來源或處理方式的數(shù)據(jù),如將多個(gè)相似的數(shù)據(jù)集按行堆疊在一起,或者將不同數(shù)據(jù)集的列拼接在一起

  • pd.merge() :用于基于列的合并,類似于 SQL 中的 JOIN 操作,用于將兩個(gè)或多個(gè)數(shù)據(jù)框(DataFrame)根據(jù)一個(gè)或多個(gè)共享的列進(jìn)行連接。

    pd.merge() 通常會(huì)檢查連接列中是否有重復(fù)值,并根據(jù)連接類型執(zhí)行不同的處理操作,如 INNER JOIN、LEFT JOIN、RIGHT JOIN 或 FULL JOIN。

    主要參數(shù)說明:

    • left:左側(cè)的 DataFrame,用于合并的左側(cè)數(shù)據(jù)。
    • right:右側(cè)的 DataFrame,用于合并的右側(cè)數(shù)據(jù)。
    • how:指定連接方式,默認(rèn)為 'inner'。可以取以下值:
      • 'inner':執(zhí)行內(nèi)連接,只保留兩個(gè) DataFrame 中共有的行。
      • 'outer':執(zhí)行外連接,保留兩個(gè) DataFrame 中的所有行,缺失值用 NaN 填充。
      • 'left':執(zhí)行左連接,保留左側(cè) DataFrame 中的所有行,右側(cè) DataFrame 中沒有匹配的行用 NaN 填充。
      • 'right':執(zhí)行右連接,保留右側(cè) DataFrame 中的所有行,左側(cè) DataFrame 中沒有匹配的行用 NaN 填充。
    • on:用于連接的列名(左右兩側(cè) DataFrame 中具有相同名稱的列)??梢允菃蝹€(gè)列名的字符串,或者是列名的列表(如果需要多列連接)。
    • left_on:左側(cè) DataFrame 中用于連接的列名,如果左右兩側(cè)的連接列名稱不同,可以使用該參數(shù)指定左側(cè)的列名。
    • right_on:右側(cè) DataFrame 中用于連接的列名,如果左右兩側(cè)的連接列名稱不同,可以使用該參數(shù)指定右側(cè)的列名。
    • left_index:默認(rèn)為 False。如果設(shè)置為 True,則使用左側(cè) DataFrame 的索引作為連接鍵。
    • right_index:默認(rèn)為 False。如果設(shè)置為 True,則使用右側(cè) DataFrame 的索引作為連接鍵。
    • suffixes:默認(rèn)為 ('_x', '_y')。用于處理重疊列名的后綴字符串元組,可以指定在列名沖突時(shí)添加到列名末尾。
    • sort:默認(rèn)為 False。如果設(shè)置為 True,在合并后對(duì)結(jié)果進(jìn)行排序。
    • copy:默認(rèn)為 True。如果設(shè)置為 False,嘗試在不復(fù)制數(shù)據(jù)的情況下執(zhí)行連接操作,可以提高性能。

    **適用場(chǎng)景:**主要用于更復(fù)雜的基于列的數(shù)據(jù)連接和合并操作,基于共享列合并來自不同數(shù)據(jù)集的數(shù)據(jù),通常用于數(shù)據(jù)關(guān)聯(lián)、數(shù)據(jù)連接和數(shù)據(jù)庫(kù)風(fēng)格的合并操作。

  • pd.join() :函數(shù)根據(jù)索引或列的值進(jìn)行連接

  • df.split() :將包含多個(gè)值的單個(gè)列拆分成多個(gè)列,從而使數(shù)據(jù)更加規(guī)整和易于處理

  • 示例:

    # 合并兩個(gè)DataFrame
    merged_df = pd.concat([df1, df2], axis=0)
    # 數(shù)據(jù)庫(kù)風(fēng)格的連接
    merged_df = pd.merge(df1, df2, on='key_column')
    

數(shù)據(jù)查看和概覽

  • df.head(n) :查看 DataFrame 的前 n 行,默認(rèn)為 5 行
  • df.tail(n) :查看 DataFrame 的后 n 行,默認(rèn)為 5 行
  • df.info() :查看 DataFrame 的基本信息,包括數(shù)據(jù)類型和非空值數(shù)量
  • df.describe() :生成描述性統(tǒng)計(jì)信息,包括均值、標(biāo)準(zhǔn)差等

數(shù)據(jù)選擇和檢索

  • df[‘column_name’] :選擇單列

  • df[[‘col1’, ‘col2’]] :選擇多列

  • df.loc[row_label] :使用標(biāo)簽選擇行

  • df.iloc[row_index] :使用整數(shù)索引選擇行

  • df.query() :使用條件查詢數(shù)據(jù)

  • 示例:

    # 選擇列:可以使用列名或列索引來選擇列。
    df['name']
    # 選擇行:可以使用行索引來選擇行。
    df.loc['a']
    # 切片方式訪問。訪問第二行到第三行數(shù)據(jù)
    df.iloc[1:3] 
    

數(shù)據(jù)篩選和過濾

  • df[df[‘column_name’] > value] :按條件篩選行

  • df[(condition1) & (condition2)] :使用邏輯運(yùn)算符篩選行

  • 示例

    # 過濾行:可以使用條件表達(dá)式來過濾行。
    df[df['age'] > 30]
    

數(shù)據(jù)排序和排名

  • df.sort_values(‘column_name’) :按列值排序

  • df.sort_index() :按索引排序

  • df.rank() :為數(shù)據(jù)分配排名

  • 示例:

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

時(shí)間序列處理

Pandas 對(duì)時(shí)間序列數(shù)據(jù)提供了強(qiáng)大的支持,包括日期解析、時(shí)間索引和滾動(dòng)窗口操作。

  • pd.to_datetime(arg, format) :將字符串轉(zhuǎn)換為日期時(shí)間類型

    • arg :日期時(shí)間字符串、時(shí)間戳、Series 等
    • format :可選,指定日期時(shí)間格式
  • df.resample() :重采樣時(shí)間序列數(shù)據(jù)

  • df.shift(periods, freq) :平移時(shí)間序列數(shù)據(jù)

  • 示例:

    # 解析日期列
    df['date_column'] = pd.to_datetime(df['date_column'])
    # 創(chuàng)建時(shí)間索引
    df.set_index('date_column', inplace=True)
    # 滾動(dòng)窗口操作
    df['rolling_mean'] = df['value_column'].rolling(window=3).mean()
    

數(shù)據(jù)可視化

Pandas 整合了 Matplotlib 庫(kù),可以輕松地可視化數(shù)據(jù)。

  • df.plot() :繪制數(shù)據(jù)可視化圖表

    • 可以通過參數(shù)指定圖表類型(例如,‘line’、‘bar’、‘scatter’ 等)和其他繪圖選項(xiàng)
  • df.hist() :繪制直方圖

    • 可以通過參數(shù)指定直方圖的柱數(shù)、顏色等
  • df.boxplot() :繪制箱線圖

    • 可以通過參數(shù)指定是否顯示
  • 示例:

    import matplotlib.pyplot as plt
    # 創(chuàng)建柱狀圖
    df['column_name'].plot(kind='bar')
    # 創(chuàng)建散點(diǎn)圖
    df.plot.scatter(x='x_column', y='y_column')
    # 更多的可視化選項(xiàng)可以結(jié)合使用 Pandas 和 Matplotlib
    

高級(jí)用法

多級(jí)索引

  • Pandas 的多級(jí)索引功能非常強(qiáng)大,它允許在一個(gè) DataFrame 中創(chuàng)建復(fù)雜的層次結(jié)構(gòu)索引,從而更靈活地組織和分析數(shù)據(jù)。

    一個(gè)常見的應(yīng)用場(chǎng)景是使用多級(jí)索引來表示時(shí)間序列數(shù)據(jù),比如將年份和季度作為索引的兩個(gè)層級(jí)。

  • 通過創(chuàng)建多級(jí)索引,可以將數(shù)據(jù)按照不同的層級(jí)進(jìn)行劃分和聚合。

    例如,可以根據(jù)年份來對(duì)數(shù)據(jù)進(jìn)行分組,然后在每個(gè)年份內(nèi)再按照季度進(jìn)行分組。這樣,可以更方便地進(jìn)行各種統(tǒng)計(jì)分析,比如計(jì)算每個(gè)季度的平均值、總和等。

  • 在創(chuàng)建多級(jí)索引時(shí),可以使用 Pandas 的 MultiIndex 類來指定索引的層級(jí)和標(biāo)簽。

    通過指定層級(jí)的名稱和對(duì)應(yīng)的標(biāo)簽值,可以輕松地創(chuàng)建一個(gè)具有多級(jí)索引的 DataFrame。

  • 使用多級(jí)索引可以帶來很多好處,比如提高數(shù)據(jù)的查詢效率、簡(jiǎn)化數(shù)據(jù)的操作和分析等。

    但同時(shí),也需要注意在使用多級(jí)索引時(shí),要避免索引混淆和數(shù)據(jù)結(jié)構(gòu)復(fù)雜度過高的問題。

    因此,在使用多級(jí)索引時(shí),需要根據(jù)具體的需求和數(shù)據(jù)特點(diǎn)來靈活應(yīng)用。

  • 示例:

    import pandas as pd
     
    # 創(chuàng)建多級(jí)索引
    index = pd.MultiIndex.from_tuples([('2019', 'Q1'), ('2019', 'Q2'), ('2020', 'Q1'), ('2020', 'Q2')])
    data = pd.DataFrame({'Sales': [100, 200, 150, 250]}, index=index)
    # 查詢特定季度的銷售數(shù)據(jù)
    print(data.loc[('2020', 'Q1')])
    print("==================")
    # 查詢特定年份的銷售數(shù)據(jù)
    print(data.loc['2020'])
    
    # 輸出結(jié)果:
    Sales    150
    Name: (2020, Q1), dtype: int64
    ==================
        Sales
    Q1    150
    Q2    250
    

透視表

  • 透視表是一種根據(jù)數(shù)據(jù)中的一個(gè)或多個(gè)列創(chuàng)建匯總表格的方法。

    Pandas 提供了 pivot_table() 函數(shù),可以方便地對(duì)數(shù)據(jù)進(jìn)行聚合和分析。

    通過 pivot_table() 函數(shù),可以指定一個(gè)或多個(gè)列作為行索引,另一個(gè)或多個(gè)列作為列索引,然后根據(jù)指定的聚合函數(shù)對(duì)數(shù)據(jù)進(jìn)行匯總。這樣,就可以快速計(jì)算出各個(gè)行和列對(duì)應(yīng)的統(tǒng)計(jì)量,比如平均值、總和、計(jì)數(shù)等。

  • Pandas 的透視表功能提供了一種方便、靈活的數(shù)據(jù)聚合和分析方法,可以幫助更好地理解和利用數(shù)據(jù)。

    透視表的好處在于它提供了一種直觀、簡(jiǎn)潔的方式來查看和分析數(shù)據(jù)。

    通過透視表,可以輕松地對(duì)數(shù)據(jù)進(jìn)行切片、切塊和篩選,從而更深入地了解數(shù)據(jù)的特征和關(guān)系。

  • 使用透視表時(shí),可以根據(jù)具體的需求選擇合適的聚合函數(shù)、行列索引和篩選條件,以獲取想要的分析結(jié)果。

    透視表不僅適用于單個(gè) DataFrame,還可以用于多個(gè) DataFrame 的合并和分析。

  • 示例:

    import pandas as pd
     
    # 創(chuàng)建一個(gè)包含銷售數(shù)據(jù)的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)
    
    # 輸出結(jié)果
    Quarter   Q1   Q2
    Year
    2019     100  200
    2020     150  250
    

時(shí)間序列分析

  • 在處理時(shí)間序列數(shù)據(jù)方面,Pandas 提供了靈活且高效的功能。

    它的日期和時(shí)間處理功能包括日期范圍生成、日期索引、日期加減運(yùn)算、日期格式化等??梢暂p松地創(chuàng)建日期范圍,并使用這些日期作為數(shù)據(jù)的索引,便于對(duì)時(shí)間序列數(shù)據(jù)進(jìn)行操作和分析。

  • Pandas 還支持重采樣操作,可以將時(shí)間序列數(shù)據(jù)從一個(gè)頻率轉(zhuǎn)換為另一個(gè)頻率。

    例如,可以將按天采樣的數(shù)據(jù)轉(zhuǎn)換為按月采樣的數(shù)據(jù),或者將按小時(shí)采樣的數(shù)據(jù)轉(zhuǎn)換為按分鐘采樣的數(shù)據(jù)。重采樣功能允許根據(jù)需要靈活地調(diào)整數(shù)據(jù)的粒度和頻率。

  • Pandas 還提供了滑動(dòng)窗口操作,可以在時(shí)間序列數(shù)據(jù)上執(zhí)行滑動(dòng)窗口統(tǒng)計(jì)計(jì)算。

    可以定義窗口的大小和滑動(dòng)的步長(zhǎng),并針對(duì)窗口內(nèi)的數(shù)據(jù)進(jìn)行匯總、聚合或其他計(jì)算操作。這對(duì)于處理時(shí)間序列數(shù)據(jù)中的移動(dòng)平均值、滾動(dòng)求和等任務(wù)非常有用。

  • 示例:

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

處理 Excel 文件

  • 當(dāng)使用 Pandas 處理 Excel 文件時(shí),可以使用 read_excel() 函數(shù)來讀取 Excel 數(shù)據(jù),并將其加載到一個(gè) DataFrame 中。

    然后可以對(duì)讀取的數(shù)據(jù)進(jìn)行各種操作和處理,例如篩選特定列的數(shù)據(jù)、根據(jù)條件篩選數(shù)據(jù)、對(duì)數(shù)據(jù)進(jìn)行排序,在 DataFrame 中添加了新的列等等。

  • 示例:

    import pandas as pd
     
    # 讀取Excel文件
    df = pd.read_excel('data.xlsx', sheet_name='Sheet1')
     
    # 顯示DataFrame的前幾行數(shù)據(jù)
    print(df.head())
    
    # 篩選特定列數(shù)據(jù)
    selected_columns = ['Name', 'Age']
    filtered_data = df[selected_columns]
     
    # 按條件篩選數(shù)據(jù)
    condition = df['Age'] > 25
    filtered_data = df[condition]
     
    # 數(shù)據(jù)排序
    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)
    

到了這里,關(guān)于Python 數(shù)據(jù)處理與分析之 Pandas 庫(kù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【Python數(shù)據(jù)處理】-Pandas筆記

    【Python數(shù)據(jù)處理】-Pandas筆記

    Pandas是一個(gè)強(qiáng)大的Python數(shù)據(jù)處理庫(kù),它提供了高效的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)分析工具,使數(shù)據(jù)處理變得簡(jiǎn)單而快速。本篇筆記將介紹Pandas中最常用的數(shù)據(jù)結(jié)構(gòu)——Series和DataFrame,以及數(shù)據(jù)處理的各種操作和技巧。 (一)創(chuàng)建Series Series是Pandas中的一維數(shù)組,類似于帶有標(biāo)簽的NumPy數(shù)組

    2024年02月12日
    瀏覽(18)
  • 頭歌Python實(shí)訓(xùn)——pandas數(shù)據(jù)處理

    頭歌Python實(shí)訓(xùn)——pandas數(shù)據(jù)處理

    任務(wù)描述 本關(guān)任務(wù): 超市銷售數(shù)據(jù)如圖所示 建立excel文件“類別銷售”,根據(jù)不同類別建立多個(gè)工作表,將相同類別的銷售信息存放在相應(yīng)的工作表中。 相關(guān)知識(shí) 為了完成本關(guān)任務(wù),你需要掌握:1.讀取excel文件,2.篩選dataframe數(shù)據(jù),3.將數(shù)據(jù)寫入工作簿和工作表 從excel文件讀

    2024年02月04日
    瀏覽(23)
  • Python Pandas 處理Excel數(shù)據(jù) 制圖

    Python Pandas 處理Excel數(shù)據(jù) 制圖

    目錄 1、餅狀圖? 2、條形統(tǒng)計(jì)圖

    2024年02月11日
    瀏覽(29)
  • 利用Python進(jìn)行數(shù)據(jù)清洗與預(yù)處理:Pandas的高級(jí)用法【第147篇—Pandas的高級(jí)用法】

    利用Python進(jìn)行數(shù)據(jù)清洗與預(yù)處理:Pandas的高級(jí)用法【第147篇—Pandas的高級(jí)用法】

    前些天發(fā)現(xiàn)了一個(gè)巨牛的人工智能學(xué)習(xí)網(wǎng)站,通俗易懂,風(fēng)趣幽默,忍不住分享一下給大家。【點(diǎn)擊進(jìn)入巨牛的人工智能學(xué)習(xí)網(wǎng)站】。 在數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí)領(lǐng)域,數(shù)據(jù)清洗和預(yù)處理是至關(guān)重要的步驟。Pandas庫(kù)作為Python中最受歡迎的數(shù)據(jù)處理工具之一,提供了強(qiáng)大的功能來處

    2024年04月09日
    瀏覽(35)
  • Pandas文本數(shù)據(jù)處理大全:類型判斷、空白字符處理、拆分與連接【第67篇—python:文本數(shù)據(jù)】

    Pandas文本數(shù)據(jù)處理大全:類型判斷、空白字符處理、拆分與連接【第67篇—python:文本數(shù)據(jù)】

    Pandas是Python中一種強(qiáng)大的數(shù)據(jù)分析庫(kù),廣泛用于數(shù)據(jù)清洗、處理和分析。在實(shí)際的數(shù)據(jù)處理中,文本數(shù)據(jù)常常是不可避免的一部分。本篇博客將介紹Pandas中處理文本數(shù)據(jù)的一些常用技巧,包括類型判斷、去除空白字符、拆分和連接。 在處理文本數(shù)據(jù)時(shí),首先要了解數(shù)據(jù)的類型

    2024年02月19日
    瀏覽(21)
  • 數(shù)據(jù)分析 — Pandas 數(shù)據(jù)處理

    Pandas (Python Data Analysis Library)是一個(gè)基于 NumPy 的 數(shù)據(jù)分析工具 ,專為解決數(shù)據(jù)分析任務(wù)而創(chuàng)建。它匯集了大量庫(kù)和一些標(biāo)準(zhǔn)的數(shù)據(jù)模型,可以更高效地操作大型數(shù)據(jù)集。 數(shù)據(jù)結(jié)構(gòu): Pandas 提供了兩種主要的數(shù)據(jù)結(jié)構(gòu),即 Series 和 DataFrame ,用于處理 一維和二維 數(shù)據(jù)。 標(biāo)簽

    2024年02月22日
    瀏覽(25)
  • Python用pandas進(jìn)行大數(shù)據(jù)Excel兩文件比對(duì)去重300w大數(shù)據(jù)處理

    Python用pandas進(jìn)行大數(shù)據(jù)Excel兩文件比對(duì)去重300w大數(shù)據(jù)處理

    Python用pandas進(jìn)行大數(shù)據(jù)Excel兩文件比對(duì)去重 通俗理解有兩個(gè)excel文件 分別為A和B 我要從B中去掉A中含有的數(shù)據(jù), 數(shù)據(jù)量大約在300w左右 因?yàn)閿?shù)據(jù)量較大,無論是wps還是office自帶的去重都無法正常使用這樣就需要用到腳本了 ?歡迎大家指導(dǎo)交流,共同學(xué)習(xí),共同進(jìn)步!

    2024年02月15日
    瀏覽(89)
  • python一點(diǎn)通:數(shù)據(jù)處理頂流Pandas 2.0有什么新功能?

    Pandas 2.0及其后續(xù)版本的發(fā)布引入了各種功能和增強(qiáng),標(biāo)志著在使用Pandas進(jìn)行數(shù)據(jù)操作和分析方面的顯著演進(jìn)。這里是對(duì)一些新功能的深入解析: 可選依賴的安裝: 在Pandas 2.0中,通過pip安裝pandas時(shí),可以通過指定extras來安裝一組可選的依賴項(xiàng),例如:pip install “pandas[performan

    2024年02月08日
    瀏覽(17)
  • 數(shù)據(jù)分析-Pandas如何輕松處理時(shí)間序列數(shù)據(jù)

    時(shí)間序列數(shù)據(jù)在數(shù)據(jù)分析建模中很常見,例如天氣預(yù)報(bào),空氣狀態(tài)監(jiān)測(cè),股票交易等金融場(chǎng)景。此處選擇巴黎、倫敦歐洲城市空氣質(zhì)量監(jiān)測(cè) N O 2 NO_2 N O 2 ? 數(shù)據(jù)作為樣例。 python數(shù)據(jù)分析-數(shù)據(jù)表讀寫到pandas 經(jīng)典算法-遺傳算法的python實(shí)現(xiàn) 經(jīng)典算法-遺傳算法的一個(gè)簡(jiǎn)單例子 大

    2024年01月25日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包