成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

你還在用Excel處理數據?Python Pandas讓你處理數據事半功倍!

開發 后端
Pandas是Python中非常常用的數據處理工具,可以方便地進行數據的讀取、清洗、轉換、分析和可視化等操作。本文介紹了Pandas的基本用法和常用函數,以及一些高級技巧,希望能夠對讀者有所幫助。

簡介

Pandas是一個用于數據分析和處理的Python庫,它提供了高效的數據結構和數據操作工具,可以處理多種類型的數據,包括時間序列、表格型數據和矩陣數據等。

Pandas的主要數據結構是Series和DataFrame,Series是一維數組,DataFrame是二維表格型數據結構,類似于Excel中的表格。Pandas還提供了一些常用的數據操作函數,包括數據的讀取和寫入、數據的切片和過濾、數據的合并和聚合等。

本文將深入介紹Pandas庫的使用,包括數據的讀取和寫入、數據的索引和切片、數據的過濾和排序、數據的合并和聚合等常用操作。同時,還將介紹一些不常用但是有用的Pandas函數和技巧。本文將提供完整的代碼示例,幫助讀者更好地理解和應用Pandas庫。

安裝

在使用Pandas庫之前,需要先安裝它。可以使用pip命令進行安裝:

pip install pandas

數據的讀取和寫入

Pandas提供了多種方式讀取和寫入數據,包括讀寫CSV文件、Excel文件、SQL數據庫等。下面是一些常用的數據讀取和寫入函數。

讀取CSV文件

Pandas提供了read_csv函數用于讀取CSV文件,該函數將CSV文件讀取為DataFrame格式的數據。

import pandas as pd

df = pd.read_csv('data.csv')
print(df)

read_csv函數的參數列表如下:

  • filepath_or_buffer:CSV文件路徑或URL地址。
  • sep:CSV文件的分隔符,默認為逗號。
  • header:指定哪一行作為列名,默認為0,即第一行。
  • index_col:指定哪一列作為行索引,默認為None,即不使用行索引。
  • usecols:指定讀取哪些列,默認為None,即讀取所有列。
  • dtype:指定每一列的數據類型。
  • skiprows:指定跳過哪些行。
  • nrows:指定讀取的行數。
  • na_values:指定缺失值的表示方式。

寫入CSV文件

Pandas提供了to_csv函數用于將數據寫入CSV文件。

import pandas as pd

df = pd.DataFrame({'name':['Tom', 'Jack', 'Mary'], 'age':[18, 20, 22]})
df.to_csv('data.csv', index=False)

to_csv函數的參數列表如下:

  • path_or_buf:CSV文件路徑或文件對象。
  • sep:CSV文件的分隔符,默認為逗號。
  • header:是否寫入列名,默認為True。
  • index:是否寫入行索引,默認為True。
  • mode:寫入模式,如"w"表示覆蓋寫入,"a"表示追加寫入。
  • encoding:編碼方式,默認為"utf-8"。
  • na_rep:缺失值的表示方式。

讀取Excel文件

Pandas提供了read_excel函數用于讀取Excel文件,該函數將Excel文件讀取為DataFrame格式的數據。

import pandas as pd

df = pd.read_excel('data.xlsx')
print(df)

read_excel函數的參數列表如下:

  • io:Excel文件路徑或URL地址。
  • sheet_name:指定讀取哪個Sheet,默認為0,即第一個Sheet。
  • header:指定哪一行作為列名,默認為0,即第一行。
  • index_col:指定哪一列作為行索引,默認為None,即不使用行索引。
  • usecols:指定讀取哪些列,默認為None,即讀取所有列。
  • dtype:指定每一列的數據類型。
  • skiprows:指定跳過哪些行。
  • nrows:指定讀取的行數。
  • na_values:指定缺失值的表示方式。

寫入Excel文件

Pandas提供了to_excel函數用于將數據寫入Excel文件。

import pandas as pd

df = pd.DataFrame({'name':['Tom', 'Jack', 'Mary'], 'age':[18, 20, 22]})
df.to_excel('data.xlsx', index=False)

to_excel函數的參數列表如下:

  • excel_writer:Excel文件路徑或文件對象。
  • sheet_name:指定寫入哪個Sheet,默認為Sheet1。
  • header:是否寫入列名,默認為True。
  • index:是否寫入行索引,默認為True。
  • startrow:從哪一行開始寫入,默認為0。
  • startcol:從哪一列開始寫入,默認為0。
  • na_rep:缺失值的表示方式。

數據的索引和切片

Pandas提供了多種方式對數據進行索引和切片,包括基于位置的索引和切片、基于標簽的索引和切片、布爾索引和掩碼索引等。

基于位置的索引和切片

Pandas提供了類似于Python列表的索引和切片方式,使用iloc屬性實現。

import pandas as pd

df = pd.DataFrame({'name':['Tom', 'Jack', 'Mary'], 'age':[18, 20, 22]})
print(df.iloc[1]) # 索引第二行
print(df.iloc[0:2]) # 切片前兩行
print(df.iloc[:, 0]) # 索引第一列
print(df.iloc[:, 0:2]) # 切片前兩列
print(df.iloc[1, 1]) # 索引第二行第二列

基于標簽的索引和切片

Pandas提供了基于標簽的索引和切片方式,使用loc屬性實現。

import pandas as pd

df = pd.DataFrame({'name':['Tom', 'Jack', 'Mary'], 'age':[18, 20, 22]})
df.set_index('name', inplace=True) # 將name列設置為行索引
print(df.loc['Jack']) # 索引Jack行
print(df.loc[['Tom', 'Mary']]) # 索引Tom和Mary行
print(df.loc[:, 'age']) # 索引age列
print(df.loc[:, ['age', 'gender']]) # 索引age和gender列
print(df.loc['Jack', 'age']) # 索引Jack行的age列

布爾索引和掩碼索引

Pandas提供了布爾索引和掩碼索引方式,可以根據指定的條件篩選數據。

import pandas as pd

df = pd.DataFrame({'name':['Tom', 'Jack', 'Mary'], 'age':[18, 20, 22]})
print(df[df['age']>20]) # 篩選年齡大于20的數據
print(df[(df['name']=='Tom') | (df['name']=='Mary')]) # 篩選名字為Tom或Mary的數據

數據的過濾和排序

Pandas提供了多種方式對數據進行過濾和排序,包括條件過濾、數值過濾、文本過濾和排序等。

條件過濾

Pandas提供了query函數和where函數用于條件過濾。

import pandas as pd

df = pd.DataFrame({'name':['Tom', 'Jack', 'Mary'], 'age':[18, 20, 22]})
print(df.query('age > 20')) # 篩選年齡大于20的數據
print(df.where(df['name']=='Tom')) # 篩選名字為Tom的數據

數值過濾

Pandas提供了多種方式對數據進行數值過濾,包括數值比較、數值范圍篩選和缺失值處理等。

import pandas as pd
import numpy as np

df = pd.DataFrame({'name':['Tom', 'Jack', 'Mary'], 'age':[18, np.nan, 22]})
print(df[df['age']>20]) # 篩選年齡大于20的數據
print(df[df['age'].between(18, 20)]) # 篩選年齡在18-20之間的數據
print(df.dropna()) # 刪除缺失值
print(df.fillna(0)) # 將缺失值填充為0

文本過濾

Pandas提供了str屬性用于文本過濾,可以根據指定的條件篩選包含特定字符的數據。

import pandas as pd

df = pd.DataFrame({'name':['Tom', 'Jack', 'Mary'], 'gender':['M', 'F', 'F']})
print(df[df['name'].str.contains('a')]) # 篩選名字中包含a的數據
print(df[df['gender'].isin(['M', 'F'])]) # 篩選性別為M或F的數據

排序

Pandas提供了sort_values函數用于對數據進行排序,可以根據指定的列或行進行排序。

import pandas as pd

df = pd.DataFrame({'name':['Tom', 'Jack', 'Mary'], 'age':[18, 20, 22]})
print(df.sort_values(by='age', ascending=False)) # 按年齡降序排序

sort_values函數的參數列表如下:

  • by:指定按哪一列排序。
  • axis:指定按哪一個維度排序,默認為0,即按列排序。
  • ascending:指定是否升序排列,默認為True。

數據的合并和聚合

Pandas提供了多種方式對數據進行合并和聚合,包括表格拼接、數據合并和數據聚合等。

表格拼接

Pandas提供了concat函數用于對多個表格進行拼接,可以按行或列拼接。

import pandas as pd

df1 = pd.DataFrame({'name':['Tom', 'Jack'], 'age':[18, 20]})
df2 = pd.DataFrame({'name':['Mary'], 'age':[22]})
print(pd.concat([df1, df2])) # 按行拼接
df3 = pd.DataFrame({'gender':['M', 'M', 'F']})
print(pd.concat([df1, df3], axis=1)) # 按列拼接

concat函數的參數列表如下:

  • objs:需要拼接的表格列表。
  • axis:指定按哪一個維度拼接,默認為0,即按行拼接。
  • join:指定拼接方式,默認為"outer",即保留所有數據。
  • keys:指定拼接后每個表格的標識符。

數據合并

Pandas提供了merge函數用于對多個數據進行合并,可以按指定的列進行合并。

import pandas as pd

df1 = pd.DataFrame({'name':['Tom', 'Jack'], 'age':[18, 20], 'gender':['M', 'M']})
df2 = pd.DataFrame({'name':['Tom', 'Mary'], 'score':[80, 90]})
print(pd.merge(df1, df2, on='name')) # 按名字合并

merge函數的參數列表如下:

  • left:左側數據表。
  • right:右側數據表。
  • on:指定按哪一列進行合并。
  • how:指定合并方式,如"inner"表示保留兩個表格中都有的數據。
  • suffixes:指定重復列名的后綴。

數據聚合

Pandas提供了groupby函數用于對數據進行聚合操作,可以根據指定的列進行分組。

import pandas as pd

df = pd.DataFrame({'name':['Tom', 'Jack', 'Mary', 'Tom'], 'age':[18, 20, 22, 24]})
print(df.groupby('name').mean()) # 按名字分組并計算平均值

groupby函數的參數列表如下:

  • by:指定按哪一列進行分組。
  • axis:指定按哪一個維度分組,默認為0,即按列分組。
  • as_index:指定是否以分組列作為行索引,默認為True。
  • aggfunc:指定聚合函數,默認為"mean",即計算平均值。

其他技巧

除了上述介紹的常用操作和函數外,Pandas還提供了許多不常用但是有用的函數和技巧,下面介紹其中一些。

apply函數

apply函數可以對每一列或每一行應用指定的函數。

import pandas as pd
import numpy as np

df = pd.DataFrame({'name':['Tom', 'Jack', 'Mary'], 'age':[18, 20, 22]})
print(df.apply(lambda x: x.max())) # 每列的最大值
print(df.apply(lambda x: np.mean(x), axis=1)) # 每行的平均值

pivot_table函數

pivot_table函數可以對數據進行透視表操作,可以根據指定的列進行分組和聚合。

import pandas as pd

df = pd.DataFrame({'name':['Tom', 'Jack', 'Mary', 'Tom'], 'age':[18, 20, 22, 24], 'score':[80, 90, 85, 95]})
print(df.pivot_table(values='score', index='name', aggfunc='mean')) # 按名字計算平均分數

cut函數

cut函數可以將數據按指定的區間進行分段。

import pandas as pd

df = pd.DataFrame({'score':[60, 70, 80, 90, 100]})
bins = [0, 60, 70, 80, 90, 100]
labels = ['F', 'D', 'C', 'B', 'A']
df['grade'] = pd.cut(df['score'], bins=bins, labels=labels)
print(df)

qcut函數

qcut函數可以將數據按指定的分位數進行分段。

import pandas as pd

df = pd.DataFrame({'score':[60, 70, 80, 90, 100]})
df['grade'] = pd.qcut(df['score'], q=3, labels=['Low', 'Medium', 'High'])
print(df)

結論

Pandas是Python中非常常用的數據處理工具,可以方便地進行數據的讀取、清洗、轉換、分析和可視化等操作。本文介紹了Pandas的基本用法和常用函數,以及一些高級技巧,希望能夠對讀者有所幫助。

責任編輯:姜華 來源: 今日頭條
相關推薦

2024-05-20 09:31:53

PandasPython大數據集

2023-11-27 13:58:00

數據預處理數據標準化

2019-08-27 17:32:10

數據處理PandasPython

2012-07-19 10:03:32

2020-10-29 06:02:44

PythonPandasExcel

2022-03-02 08:01:50

腳本數據集成

2024-11-12 16:28:34

2023-07-10 09:39:02

lambdaPython語言

2019-01-28 17:42:33

Python數據預處理數據標準化

2018-11-19 15:06:23

Python算法

2020-06-24 11:59:31

PythonPandas數據處理

2024-01-12 07:32:35

數據科學Python庫項目

2020-03-04 14:05:35

戴爾

2023-05-08 08:49:32

JavaLambda表達式

2025-06-16 01:30:00

大數據

2020-09-16 11:10:33

Linux命令文件

2021-12-03 23:14:49

Github插件開發

2011-04-22 15:55:33

吊頂正投投影機

2024-10-24 17:03:19

AWK數據處理

2025-04-02 08:47:23

DOM文檔結構API
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美精品一区二区三区在线播放 | 91精品国产一区二区三区 | 国产亚洲网站 | 精品亚洲一区二区 | 久久精品亚洲精品 | 国产一区二区精品在线 | 在线观看视频福利 | 天天操天天操 | a毛片视频网站 | 欧美国产视频 | 日韩精品1区2区3区 爱爱综合网 | 九九热免费在线观看 | 中文字幕一区二区三区四区五区 | 国产一区二区三区久久久久久久久 | 国产成人av电影 | 高清久久久 | 亚洲欧美一区二区三区在线 | 国产 欧美 日韩 一区 | 国产精品久久久久久久久久久久久 | 久久国产精彩视频 | 国产精品欧美一区二区 | 午夜大片 | 99久久99热这里只有精品 | 日韩a| 久草网址 | 国产精品国产亚洲精品看不卡15 | 精品在线免费看 | 欧美一级片在线看 | 自拍偷拍亚洲视频 | 日韩精品一区在线 | 欧美成人一区二区三区 | 中文字幕第十页 | 亚洲精品电影在线观看 | 国产福利视频导航 | 国产精品日本一区二区不卡视频 | 国产成人在线视频播放 | 亚洲一区 | 国产精品久久久久久吹潮 | 欧美高清一区 | 蜜桃精品视频在线 | 激情五月婷婷综合 |