Python中如何使用Pandas庫 數據分析中的常見操作技巧

pandaspython數據分析的核心工具,安裝使用pip install pandas,導入為import pandas as pd。創建dataframe可從字典或csv文件讀取,如pd.dataframe(data)或pd.read_csv(‘your_data.csv’)。數據選擇可通過列名或條件過濾實現,如df[‘姓名’]或df[df[‘年齡’] >= 28]。數據清洗包括填充缺失值fillna()、刪除缺失值dropna()和去重drop_duplicates()。類型轉換用astype()函數,應用函數可用apply()方法。數據聚合與分組通過groupby()完成,如按城市計算平均年齡。處理大型數據集時,可用分塊讀取read_csv+chunksize、dask并行計算或優化數據類型。與sql交互可用read_sql_query讀取和to_sql寫入數據庫。時間序列分析支持date_range創建序列、resample重采樣和rolling移動窗口計算。掌握這些技巧能高效挖掘數據價值。

Python中如何使用Pandas庫 數據分析中的常見操作技巧

Pandas是python數據分析的瑞士軍刀,掌握它能讓你在數據世界里暢游無阻。它不僅提供了高效的數據結構,還內置了大量數據處理函數,讓數據清洗、轉換、分析變得輕松愉快。

Python中如何使用Pandas庫 數據分析中的常見操作技巧

Pandas的核心在于DataFrame和Series這兩種數據結構。DataFrame可以看作是電子表格或SQL表,而Series則是一維的、帶標簽的數組。

Python中如何使用Pandas庫 數據分析中的常見操作技巧

解決方案

  1. 安裝Pandas:

    立即學習Python免費學習筆記(深入)”;

    Python中如何使用Pandas庫 數據分析中的常見操作技巧

    pip install pandas
  2. 導入Pandas:

    import pandas as pd
  3. 創建DataFrame:

    • 從字典創建:

      data = {'姓名': ['Alice', 'Bob', 'Charlie'],         '年齡': [25, 30, 28],         '城市': ['北京', '上海', '深圳']} df = pd.DataFrame(data) print(df)
    • csv文件讀取:

      df = pd.read_csv('your_data.csv') # 假設你的數據文件名為your_data.csv print(df.head()) # 查看前幾行數據
  4. 數據選擇與過濾:

    • 選擇列:

      names = df['姓名'] # 選擇'姓名'列 print(names)
    • 按條件過濾:

      adults = df[df['年齡'] >= 28] # 選擇年齡大于等于28歲的人 print(adults)
  5. 數據清洗:

    • 處理缺失值:

      # 填充缺失值 df_filled = df.fillna(0) # 用0填充所有缺失值 df_filled_mean = df.fillna(df.mean(numeric_only=True)) # 用均值填充數值列的缺失值  # 刪除包含缺失值的行 df_dropna = df.dropna()
    • 刪除重復值:

      df_deduplicated = df.drop_duplicates()
  6. 數據轉換:

    • 類型轉換:

      df['年齡'] = df['年齡'].astype(int) # 將'年齡'列轉換為整數類型
    • 應用函數:

      def add_prefix(name):     return 'Mr./Ms. ' + name  df['姓名'] = df['姓名'].apply(add_prefix) # 給'姓名'列的每個值添加前綴 print(df)
  7. 數據聚合與分組:

    # 按城市分組,計算平均年齡 grouped = df.groupby('城市')['年齡'].mean() print(grouped)

如何高效地處理大型數據集?

當數據集變得龐大時,Pandas的處理速度可能會下降。這時,可以考慮以下策略:

  • 分塊讀取: 使用pd.read_csv的chunksize參數,將大文件分成小塊讀取。

    for chunk in pd.read_csv('large_data.csv', chunksize=10000):     # 處理每個數據塊     process_chunk(chunk)
  • 使用Dask: Dask是一個并行計算庫,可以與Pandas無縫集成,加速數據處理。

    import dask.dataframe as dd  ddf = dd.read_csv('large_data.csv') result = ddf.groupby('城市')['年齡'].mean().compute() # 使用compute()觸發計算 print(result)
  • 優化數據類型: 確保DataFrame使用合適的數據類型,例如將字符串類型轉換為category類型可以節省內存。

    df['城市'] = df['城市'].astype('category')

Pandas DataFrame與SQL數據庫的交互技巧

Pandas可以方便地與SQL數據庫進行交互,讓你在Python中直接操作數據庫數據。

  • 讀取SQL數據:

    import sqlite3  conn = sqlite3.connect('your_database.db') query = "SELECT * FROM your_table" df = pd.read_sql_query(query, conn) conn.close() print(df.head())
  • 寫入DataFrame到SQL:

    import sqlite3 from sqlalchemy import create_engine  #方法一:使用sqlite3 conn = sqlite3.connect('your_database.db') df.to_sql('new_table', conn, if_exists='replace', index=False) # if_exists參數控制如何處理已存在的表 conn.close()  #方法二:使用sqlalchemy engine = create_engine('sqlite:///your_database.db') df.to_sql('new_table', engine, if_exists='replace', index=False) engine.dispose()

如何利用Pandas進行時間序列分析?

Pandas對時間序列數據提供了強大的支持,可以方便地進行時間序列分析。

  • 創建時間序列:

    dates = pd.date_range('2023-01-01', periods=100, freq='D') # 創建一個從2023-01-01開始,長度為100天的時間序列 ts = pd.Series(range(100), index=dates) print(ts.head())
  • 重采樣:

    # 將數據按月重采樣,并計算平均值 monthly_mean = ts.resample('M').mean() print(monthly_mean)
  • 移動窗口:

    # 計算7天移動平均 rolling_mean = ts.rolling(window=7).mean() print(rolling_mean.head(10))

掌握這些技巧,你就能在Python中利用Pandas輕松駕馭數據,挖掘出有價值的信息。

? 版權聲明
THE END
喜歡就支持一下吧
點贊5 分享