介紹
- 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 中添加了新的列等等。文章來源:http://www.zghlxwxcb.cn/news/detail-753187.html
-
示例:
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)!