Python数据处理实战第10篇
Python数据处理实战第10篇。本文全面讲解Python数据分析的核心技能,包括Pandas、NumPy、数据清洗、合并、重塑、可视化等完整流程。Introduction:数据处理是Python最强大的应用场景之一,无论是运营报表、机器学习特征工程还是业务数据分析,都离不开Pandas和NumPy这两个核心库。Pandas提供了高性能、易用的数据结构和数据分析工具,NumPy则是Python科学计算的基础。本文涵盖数据读取存储、数据选择过滤、分组聚合、缺失值处理、类型转换、合并连接、数据透视表、可视化等核心操作,配完整代码示例,帮助读者掌握Python数据分析的实用技能。
Pandas读取数据:import pandas as pd df = pd.read_excel('sales.xlsx') df = pd.read_csv('data.csv', encoding='utf-8') df = pd.read_sql('SELECT * FROM orders', engine='sqlalchemy') 查看数据基本信息:print(df.head()) print(df.info()) print(df.describe())
数据选择和过滤:按列选择:df['name'] 或 df[['name', 'age']] 按行选择:df.loc[0:5] 按条件过滤:df[df['age'] > 25] df[(df['status'] == 'active') & (df['amount'] > 1000)] 组合条件:mask = (df['age'] > 30) & (df['city'].isin(['北京', '上海'])) filtered = df[mask]
分组聚合统计:按城市统计销售额:result = df.groupby('city')['amount'].sum().sort_values(ascending=False) 按月份统计订单数:df['month'] = pd.to_datetime(df['order_date']).dt.month monthly = df.groupby('month').agg({'order_id': 'count', 'amount': 'mean'}) 透视表统计:pd.pivot_table(df, values='amount', index='city', columns='month', aggfunc='sum', fill_value=0)
缺失值处理:检查缺失值:print(df.isnull().sum()) 删除缺失行:df_clean = df.dropna(thresh=len(df.columns)*0.5) 填充缺失值:df['age'].fillna(df['age'].median(), inplace=True) 前向填充:df['name'].fillna(method='ffill', inplace=True)
数据类型转换:转换日期类型:df['order_date'] = pd.to_datetime(df['order_date']) 转换数值类型:df['amount'] = pd.to_numeric(df['amount'], errors='coerce') 分类数据:df['status'] = df['status'].astype('category')
数据合并和连接:合并两个DataFrame:combined = pd.concat([df1, df2], ignore_index=True) 关联查询:merged = pd.merge(df_orders, df_customers, on='customer_id', how='left') 追加新列:df['total'] = df['quantity'] * df['price']
数据导出:导出为Excel多sheet:with pd.ExcelWriter('report.xlsx') as writer: df.to_excel(writer, sheet_name='Sheet1', index=False) 导出为CSV:df.to_csv('output.csv', index=False, encoding='utf-8-sig')
常用技巧:删除重复行:df.drop_duplicates(inplace=True) 重命名列:df.rename(columns={'old_name': 'new_name'}, inplace=True) 条件替换:df['status'] = df['status'].replace({'pending': '待处理', 'completed': '已完成'}) 随机抽样:sample = df.sample(n=100, random_state=42)
以上就是Python数据处理的核心知识点,建议配合实际数据集练习。