Python数据分析Pandas全攻略

作者:

文章目录
  • Python 的 pandas 库是数据分析的核心工具,专门处理结构化数据(如表格、时间序列等)。
  • # 创建时间序列 date_rng = pd.date_range(start=’2023-01-01′, end=’2023-01-05′, freq=’D’) ts = pd.Series([10, 20, 15, 30, 25], index=date_rng) # 重采样(按周计算平均值) weekly_avg = ts.resample(‘W’).mean()
  • import matplotlib.pyplot as plt # 绘制年龄分布直方图 df[‘Age’].plot(kind=’hist’, bins=5) plt.title(‘Age Distribution’) plt.show()
  • # 1. 读取数据 df = pd.read_csv(‘sales.csv’) # 2. 数据清洗 df = df.dropna(subset=[‘Price’]) df[‘Date’] = pd.to_datetime(df[‘Date’]) # 3. 分析 monthly_sales = df.groupby(pd.Grouper(key=’Date’, freq=’M’))[‘Price’].sum() # 4. 可视化 monthly_sales.plot(kind=’bar’) plt.title(‘Monthly Sales’) plt.show()
  • 1、数据读取与保存 函数 作用 示例 pd.read_csv() 读取 CSV 文件 df = pd.read_csv('data.csv') pd.read_excel() 读取 Excel 文件 df = pd.read_excel('data.xlsx') pd.read_json() 读取 JSON 文件 df = pd.read_json('data.json') df.to_csv() 保存为 CSV df.to_csv('output.csv', index=False) df.to_excel() 保存为 Excel df.to_excel('output.xlsx') 2、数据查看与筛选 函数/方法 作用 示例 df.head(n) 查看前 n 行 df.head(5) df.tail(n) 查看后 n 行 df.tail(3) df.info() 显示数据信息(列名、类型、非空值) df.info() df.describe() 统计数值列的基本统计量 df.describe() df.shape 获取 DataFrame 的维度 print(df.shape) → 输出 (行数, 列数) df.columns 获取所有列名 df.columns.tolist() df.loc[] 标签索引选择数据 df.loc[2, 'Age'] → 选择第3行的Age列 df.iloc[] 位置索引选择数据 df.iloc[0:3, 1:4] → 选择前3行,第2-4列 df.query() 用表达式筛选数据 df.query('Age > 30 & City == "London"') 3、数据清洗 函数/方法 作用 示例 df.dropna() 删除缺失值 df.dropna(subset=['Age']) df.fillna() 填充缺失值 df.fillna({'Age': df['Age'].mean()}) df.drop_duplicates() 删除重复行 df.drop_duplicates(subset=['Name']) df.rename() 重命名列 df.rename(columns={'old':'new'}) df.astype() 转换数据类型 df['Age'] = df['Age'].astype(int) df.replace() 替换特定值 df.replace({'Male':'M', 'Female':'F'}) 4、数据分析 函数/方法 作用 示例 df.groupby() 分组聚合 df.groupby('City')['Sales'].sum() df.pivot_table() 创建数据透视表 pd.pivot_table(df, values='Sales', index='Region', columns='Year') df.sort_values() 按值排序 df.sort_values('Age', ascending=False) df.value_counts() 统计唯一值频次 df['City'].value_counts() df.corr() 计算列之间的相关系数 df.corr() df.merge() 合并两个 DataFrame pd.merge(df1, df2, on='ID') pd.concat() 拼接 DataFrame pd.concat([df1, df2], axis=0) 5、数据操作 函数/方法 作用 示例 df.apply() 对列/行应用函数 df['Age'].apply(lambda x: x + 1) df.map() 对 Series 元素映射转换 df['Gender'].map({'M':1, 'F':0}) df.assign() 创建新列 df.assign(Income = df['Salary']*12) df.drop() 删除列或行 df.drop(columns=['Temp']) df.where() 条件筛选(保留满足条件的值) df.where(df['Age'] > 18) df.melt() 宽表转长表 df.melt(id_vars=['Name']) 到此这篇关于Python数据分析Pandas全攻略的文章就介绍到这了,更多相关Python Pandas安装导入内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客! 您可能感兴趣的文章: Python安装Pandas库的两种方法 python安装pandas库不成功原因分析及解决办法 解决安装Python的第三方库pandas报错问题 Python 之pandas库的安装及库安装方法小结 详解Python学习之安装pandas 详解Python中pandas的安装操作说明(傻瓜版) python pandas库的安装和创建 Python爬虫之pandas基本安装与使用方法示例
  • 目录
    • 一、简介
    • 二、安装与导入
      • 1. 安装
      • 2. 导入
    • 三、核心数据结构
      • 1.Series- 一维带标签
      • 2.DataFrame- 二维表格(核心)
    • 四、数据读写
      • 1. 读取数据(支持多种格式)
      • 2. 保存数据
    • 五、数据探索
      • 1. 查看数据
      • 2. 选择数据
    • 六、数据清洗
      • 1. 处理缺失值
      • 2. 去重
      • 3. 类型转换
    • 七、数据分析
      • 1. 过滤数据
      • 2. 分组聚合
      • 3. 排序
    • 八、数据合并
      • 1. 横向合并(类似 SQL JOIN)
      • 2. 纵向合并(类似 SQL UNION)
    • 九、时间序列处理
      • 十、可视化(需安装 matplotlib)
        • 十一、常见错误处理
          • 1.KeyError
          • 2. 内存不足
        • 十二、完整工作流示例
          • 十三、常用函数

            Python 的 pandas 库是数据分析的核心工具,专门处理结构化数据(如表格、时间序列等)。

            pip install pandas

            import pandas as pd  # 行业标准缩写

            # 创建 Series
            s = pd.Series([10, 20, 30, 40], index=['a', 'b', 'c', 'd'])
            print(s)
            a    10
            b    20
            c    30
            d    40
            dtype: int64

            # 创建 DataFrame
            data = {
                'Name': ['Alice', 'Bob', 'Charlie'],
                'Age': [25, 30, 35],
                'City': ['New York', 'Paris', 'London']
            }
            df = pd.DataFrame(data)
            print(df)
                  Name  Age      City
            0    Alice   25  New York
            1      Bob   30     Paris
            2  Charlie   35    London

            # 读取 CSV
            df = pd.read_csv('data.csv', encoding='utf-8')
            # 读取 Excel
            df = pd.read_excel('data.xlsx', sheet_name='Sheet1')
            # 读取 JSON(与之前学习的 json 库结合)
            df = pd.read_json('data.json')

            # 保存为 CSV
            df.to_csv('output.csv', index=False)  # 不保存行索引
            
            # 保存为 Excel
            df.to_excel('output.xlsx', sheet_name='Results')

            查看数据
            方法 作用 示例
            df.head(n) 查看前n行 df.head(3)
            df.tail(n) 查看后n行 df.tail(2)
            df.info() 显示数据概览 df.info()
            df.describe() 统计数值列 df.describe()

            # 选择列
            ages = df['Age']          # 返回 Series
            name_city = df[['Name', 'City']]  # 返回 DataFrame
            # 选择行
            row_1 = df.iloc[0]        # 通过位置选择
            row_bob = df.loc[df['Name'] == 'Bob']  # 通过条件选择
            # 切片
            subset = df[1:3]          # 第2-3行(左闭右开)

            # 检测缺失值
            print(df.isnull())
            # 删除含缺失值的行
            df_clean = df.dropna()
            # 填充缺失值
            df_filled = df.fillna({'Age': df['Age'].mean()})  # 用平均值填充年龄列

            df_unique = df.drop_duplicates(subset=['Name'])  # 根据姓名去重

            df['Age'] = df['Age'].astype(float)  # 转换为浮点型

            # 筛选年龄 > 25 的记录
            adults = df[df['Age'] > 25]
            # 复合条件(注意用 & 代替 and)
            young_in_paris = df[(df['Age'] < 30) & (df['City'] == 'Paris')]

            # 按城市分组,计算平均年龄
            city_stats = df.groupby('City')['Age'].mean()
            print(city_stats)
            City
            London      35.0
            New York    25.0
            Paris       30.0
            Name: Age, dtype: float64

            df_sorted = df.sort_values(by='Age', ascending=False)  # 按年龄降序

            df1 = pd.DataFrame({'ID': [1, 2], 'Name': ['A', 'B']})
            df2 = pd.DataFrame({'ID': [2, 3], 'Age': [25, 30]})
            # 内连接
            merged = pd.merge(df1, df2, on='ID', how='inner')

            combined = pd.concat([df1, df2], axis=0)  # axis=0 表示行方向

            # 创建时间序列
            date_rng = pd.date_range(start='2023-01-01', end='2023-01-05', freq='D')
            ts = pd.Series([10, 20, 15, 30, 25], index=date_rng)
            # 重采样(按周计算平均值)
            weekly_avg = ts.resample('W').mean()

            import matplotlib.pyplot as plt
            # 绘制年龄分布直方图
            df['Age'].plot(kind='hist', bins=5)
            plt.title('Age Distribution')
            plt.show()

            # 检查列名是否存在
            if 'Salary' in df.columns:
                print(df['Salary'])

            • 使用 df.info(memory_usage='deep') 查看内存占用

            • 用 df.select_dtypes(include='number') 选择数值列处理

            # 1. 读取数据
            df = pd.read_csv('sales.csv')
            # 2. 数据清洗
            df = df.dropna(subset=['Price'])
            df['Date'] = pd.to_datetime(df['Date'])
            # 3. 分析
            monthly_sales = df.groupby(pd.Grouper(key='Date', freq='M'))['Price'].sum()
            # 4. 可视化
            monthly_sales.plot(kind='bar')
            plt.title('Monthly Sales')
            plt.show()

            1、数据读取与保存

            函数 作用 示例
            pd.read_csv() 读取 CSV 文件 df = pd.read_csv('data.csv')
            pd.read_excel() 读取 Excel 文件 df = pd.read_excel('data.xlsx')
            pd.read_json() 读取 JSON 文件 df = pd.read_json('data.json')
            df.to_csv() 保存为 CSV df.to_csv('output.csv', index=False)
            df.to_excel() 保存为 Excel df.to_excel('output.xlsx')

            2、数据查看与筛选

            函数/方法 作用 示例
            df.head(n) 查看前 n 行 df.head(5)
            df.tail(n) 查看后 n 行 df.tail(3)
            df.info() 显示数据信息(列名、类型、非空值) df.info()
            df.describe() 统计数值列的基本统计量 df.describe()
            df.shape 获取 DataFrame 的维度 print(df.shape) → 输出 (行数, 列数)
            df.columns 获取所有列名 df.columns.tolist()
            df.loc[] 标签索引选择数据 df.loc[2, 'Age'] → 选择第3行的Age列
            df.iloc[] 位置索引选择数据 df.iloc[0:3, 1:4] → 选择前3行,第2-4列
            df.query() 用表达式筛选数据 df.query('Age > 30 & City == "London"')

            3、数据清洗

            函数/方法 作用 示例
            df.dropna() 删除缺失值 df.dropna(subset=['Age'])
            df.fillna() 填充缺失值 df.fillna({'Age': df['Age'].mean()})
            df.drop_duplicates() 删除重复行 df.drop_duplicates(subset=['Name'])
            df.rename() 重命名列 df.rename(columns={'old':'new'})
            df.astype() 转换数据类型 df['Age'] = df['Age'].astype(int)
            df.replace() 替换特定值 df.replace({'Male':'M', 'Female':'F'})

            4、数据分析

            函数/方法 作用 示例
            df.groupby() 分组聚合 df.groupby('City')['Sales'].sum()
            df.pivot_table() 创建数据透视表 pd.pivot_table(df, values='Sales', index='Region', columns='Year')
            df.sort_values() 按值排序 df.sort_values('Age', ascending=False)
            df.value_counts() 统计唯一值频次 df['City'].value_counts()
            df.corr() 计算列之间的相关系数 df.corr()
            df.merge() 合并两个 DataFrame pd.merge(df1, df2, on='ID')
            pd.concat() 拼接 DataFrame pd.concat([df1, df2], axis=0)

            5、数据操作

            函数/方法 作用 示例
            df.apply() 对列/行应用函数 df['Age'].apply(lambda x: x + 1)
            df.map() 对 Series 元素映射转换 df['Gender'].map({'M':1, 'F':0})
            df.assign() 创建新列 df.assign(Income = df['Salary']*12)
            df.drop() 删除列或行 df.drop(columns=['Temp'])
            df.where() 条件筛选(保留满足条件的值) df.where(df['Age'] > 18)
            df.melt() 宽表转长表 df.melt(id_vars=['Name'])

            到此这篇关于Python数据分析Pandas全攻略的文章就介绍到这了,更多相关Python Pandas安装导入内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客!

            您可能感兴趣的文章:

            • Python安装Pandas库的两种方法
            • python安装pandas库不成功原因分析及解决办法
            • 解决安装Python的第三方库pandas报错问题
            • Python 之pandas库的安装及库安装方法小结
            • 详解Python学习之安装pandas
            • 详解Python中pandas的安装操作说明(傻瓜版)
            • python pandas库的安装和创建
            • Python爬虫之pandas基本安装与使用方法示例

            站内搜索