溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

常用的python Pandas函數有哪些

發布時間:2021-11-17 11:53:50 來源:億速云 閱讀:251 作者:iii 欄目:大數據
# 常用的Python Pandas函數有哪些

Pandas是Python數據分析的核心庫,提供高效的數據結構和數據處理工具。本文將全面介紹Pandas中最常用的函數,涵蓋數據讀取、清洗、轉換、分析和可視化等全流程操作。

## 一、數據讀取與寫入函數

### 1. 數據讀取函數

#### pd.read_csv()
```python
import pandas as pd
df = pd.read_csv('data.csv', encoding='utf-8', sep=',', header=0)

參數說明: - filepath_or_buffer: 文件路徑或URL - sep: 分隔符,默認為’,’ - header: 指定作為列名的行號 - index_col: 指定索引列 - dtype: 指定列數據類型 - na_values: 指定哪些值應被視為NA

pd.read_excel()

df = pd.read_excel('data.xlsx', sheet_name='Sheet1')

特有參數: - sheet_name: 指定工作表名稱或序號 - engine: 指定引擎(‘openpyxl’或’xlrd’)

pd.read_sql()

import sqlite3
conn = sqlite3.connect('database.db')
df = pd.read_sql('SELECT * FROM table', conn)

2. 數據寫入函數

df.to_csv()

df.to_csv('output.csv', index=False, encoding='utf-8')

df.to_excel()

df.to_excel('output.xlsx', sheet_name='Data', index=False)

二、數據查看與檢查函數

1. 基礎查看函數

df.head() / df.tail()

df.head(10)  # 查看前10行
df.tail()    # 默認查看后5行

df.info()

顯示DataFrame的簡明摘要:

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 1000 entries, 0 to 999
Data columns (total 5 columns):
 #   Column  Non-Null Count  Dtype  
---  ------  --------------  -----  
 0   A       1000 non-null   int64  
 1   B       950 non-null    float64
 2   C       1000 non-null   object 
dtypes: float64(1), int64(1), object(1)
memory usage: 39.2+ KB

df.describe()

生成描述性統計:

               A          B
count  1000.0000  950.00000
mean     50.1234   25.56789
std      15.4321    5.12345
min       1.0000   10.00000
25%      38.0000   22.00000
50%      51.0000   25.00000
75%      63.0000   28.00000
max     100.0000   40.00000

2. 數據檢查函數

df.isnull() / df.notnull()

df.isnull().sum()  # 每列缺失值計數

df.duplicated()

df[df.duplicated()]  # 顯示重復行

df.nunique()

df['column'].nunique()  # 返回唯一值數量

三、數據清洗函數

1. 缺失值處理

df.dropna()

df.dropna(axis=0, how='any', subset=['col1', 'col2'])

參數: - axis: 0為行,1為列 - how: ‘any’(任何NA)或’all’(全部NA) - subset: 考慮的列子集

df.fillna()

df.fillna(value=0)  # 用0填充
df.fillna(method='ffill')  # 前向填充

2. 重復值處理

df.drop_duplicates()

df.drop_duplicates(subset=['col1', 'col2'], keep='first')

3. 數據類型轉換

pd.to_numeric()

df['col'] = pd.to_numeric(df['col'], errors='coerce')

pd.to_datetime()

df['date'] = pd.to_datetime(df['date'], format='%Y-%m-%d')

四、數據篩選與排序

1. 數據篩選

布爾索引

df[df['age'] > 30]
df[(df['age'] > 30) & (df['gender'] == 'M')]

df.query()

df.query('age > 30 and gender == "M"')

df.loc[] / df.iloc[]

df.loc[df['age'] > 30, ['name', 'age']]  # 標簽索引
df.iloc[10:20, 2:5]  # 位置索引

2. 數據排序

df.sort_values()

df.sort_values(by=['col1', 'col2'], ascending=[True, False])

df.sort_index()

df.sort_index(ascending=False)

五、數據分組與聚合

1. 分組操作

df.groupby()

grouped = df.groupby('category')
grouped.size()  # 每組大小

2. 聚合函數

agg()方法

df.groupby('category').agg({
    'sales': ['sum', 'mean', 'max'],
    'profit': 'median'
})

常用聚合函數

  • sum(): 求和
  • mean(): 平均值
  • median(): 中位數
  • std(): 標準差
  • count(): 非NA計數
  • nunique(): 唯一值計數

六、數據合并與連接

1. 合并函數

pd.concat()

pd.concat([df1, df2], axis=0, ignore_index=True)

pd.merge()

pd.merge(df1, df2, on='key', how='inner')

合并方式: - inner: 內連接 - outer: 外連接 - left: 左連接 - right: 右連接

2. 連接函數

df.join()

df1.join(df2, how='left')

七、時間序列處理

1. 時間轉換

pd.to_datetime()

df['timestamp'] = pd.to_datetime(df['time_string'])

dt訪問器

df['year'] = df['date'].dt.year
df['month'] = df['date'].dt.month_name()

2. 重采樣

df.resample()

df.set_index('date').resample('M').mean()  # 按月重采樣

八、字符串處理

1. str訪問器

常用字符串方法

df['name'].str.upper()  # 轉為大寫
df['email'].str.contains('@')  # 包含檢測
df['address'].str.split(',', expand=True)  # 分割

九、數據透視表

pd.pivot_table()

pd.pivot_table(df, 
               values='sales',
               index='region',
               columns='quarter',
               aggfunc='sum',
               margins=True)

十、可視化函數

1. 基本繪圖

df.plot()

df.plot(kind='line', x='date', y='value')

常用圖表類型

  • kind='line': 折線圖
  • kind='bar': 柱狀圖
  • kind='hist': 直方圖
  • kind='scatter': 散點圖
  • kind='box': 箱線圖

十一、高效計算函數

1. 向量化操作

df.apply()

df['new_col'] = df['col'].apply(lambda x: x*2)

df.applymap()

df.applymap(lambda x: len(str(x)))

2. 性能優化

pd.eval()

pd.eval('df1 + df2 * df3')

十二、高級功能

1. 分類數據

pd.Categorical()

df['grade'] = pd.Categorical(df['grade'], 
                            categories=['A','B','C','D'],
                            ordered=True)

2. 多級索引

pd.MultiIndex

df.set_index(['col1', 'col2'])

總結

本文詳細介紹了Pandas中最常用的六大類函數:

  1. 數據I/O函數:讀寫各種格式的數據
  2. 數據檢查函數:快速了解數據結構
  3. 數據清洗函數:處理缺失值和異常值
  4. 數據轉換函數:重塑和變換數據
  5. 數據分析函數:分組聚合和統計分析
  6. 數據可視化函數:快速生成圖表

掌握這些核心函數,能夠高效完成80%以上的數據分析任務。建議讀者結合實際項目練習這些函數的使用,并參考官方文檔深入了解各函數的參數細節。

提示:Pandas函數通常有多個參數,使用help(pd.function_name)可以查看完整幫助文檔。 “`

注:本文實際約3200字,要達到5150字需要進一步擴展每個函數的參數說明、使用場景、示例和注意事項等內容。受限于回答長度,這里提供了主要框架和核心內容,您可以根據需要擴展以下部分:

  1. 每個函數的參數詳解
  2. 更多實際應用示例
  3. 性能優化技巧
  4. 常見錯誤及解決方案
  5. 與其他庫的集成使用
  6. 實際案例分析
  7. 函數底層原理說明
  8. 版本更新變化對比
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女