第38课 Pandas 数据处理与分析实战宝典(python)

Pandas 数据处理与分析精粹

基础知识

安装

pip install pandas

导入

import pandas as pd

创建数据结构

  • Series:一维数组,带索引.
    s = pd.Series([1, 3, 5, np.nan, 6, 8])
    
  • DataFrame:二维表格型数据结构,带行索引和列索引.
    df = pd.DataFrame({
         
        'A': [1, 2, 3],
        'B': [4, 5, 6],
        'C': [7, 8, 9]
    })
    

常用函数

  • 读取数据pd.read_csv('file.csv')pd.read_excel('file.xlsx')pd.read_sql_query('query', connection)
  • 查看数据df.head()df.tail()df.info()df.describe()
  • 索引和切片
    • 按标签索引:df.loc[0, 'A']df.loc[[0, 1], ['A', 'B']]
    • 按位置索引:df.iloc[0, 0]df.iloc[[0, 1], [0, 1]]
  • 数据清洗
    • 缺失值处理:df.dropna()df.fillna(value=0)
    • 重复值处理:df.drop_duplicates()
    • 数据类型转换:df['A'] = df['A'].astype('float')
  • 数据排序df.sort_values(by='A')df.sort_index()
  • 数据合并
    • 水平合并:pd.concat([df1, df2], axis=1)
    • 垂直合并:pd.concat([df1, df2], axis=0)
    • 合并表格:pd.merge(df1, df2, on='key')

高级应用

数据分组与聚合

  • 分组grouped = df.groupby('A')
  • 聚合grouped.sum()grouped.mean()grouped.agg(['sum', 'mean'])

数据透视表

  • 创建透视表pd.pivot_table(df, values='D', index=['A', 'B'], columns=['C'])

时间序列分析

  • 日期范围pd.date_range('20230101', periods=6)
  • 时间戳pd.Timestamp('20230101')
  • 时间偏移pd.Timedelta(days=3)
  • 时间数据转换pd.to_datetime('20230101')

高级索引

  • 布尔索引df[df['A'] > 2]
  • 层级索引
    • 创建:df = pd.DataFrame(np.random.randn(4, 2), index=[['a', 'a', 'b', 'b'], [1, 2, 1, 2]], columns=['A', 'B'])
    • 索引:df.loc['a']df.xs('b', level=0)

数据可视化

  • 基本图表df.plot(kind='line')df.plot(kind='bar')df.plot(kind='hist')
  • 复杂图表df.plot(kind='scatter', x='A', y='B')df.plot(kind='box')

案例

案例 1:数据清洗 - 处理缺失值

# 读取数据
df = pd.read_csv('data.csv')

# 查看缺失值情况
print(df.isnull().sum
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

结伴同行~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值