Python使用总结之DataFrame使用详解

Python使用总结之DataFrame使用详解

Pandas是Python中最强大的数据分析库之一,而DataFrame是Pandas中最重要的数据结构。DataFrame可以看作是一种表格型数据结构,它类似于电子表格或SQL表,可以轻松地进行数据操作和分析。

本文将详细介绍Pandas中的DataFrame的使用方法,包括创建、操作、索引、处理缺失值和数据聚合等方面。

一、创建DataFrame

DataFrame可以通过多种方式创建,常见的包括从字典、列表、NumPy数组和CSV文件等创建。

  1. 从字典创建DataFrame:
python 复制代码
import pandas as pd

data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35],
    'City': ['New York', 'Los Angeles', 'Chicago']
}

df = pd.DataFrame(data)
print(df)
  1. 从列表创建DataFrame:
python 复制代码
data = [
    ['Alice', 25, 'New York'],
    ['Bob', 30, 'Los Angeles'],
    ['Charlie', 35, 'Chicago']
]

df = pd.DataFrame(data, columns=['Name', 'Age', 'City'])
print(df)
  1. 从NumPy数组创建DataFrame:
python 复制代码
import numpy as np

data = np.array([
    ['Alice', 25, 'New York'],
    ['Bob', 30, 'Los Angeles'],
    ['Charlie', 35, 'Chicago']
])

df = pd.DataFrame(data, columns=['Name', 'Age', 'City'])
print(df)
  1. 从CSV文件创建DataFrame:
python 复制代码
df = pd.read_csv('data.csv')
print(df)
二、基本操作
  1. 查看数据:
python 复制代码
print(df.head())   # 查看前5行数据
print(df.tail())   # 查看后5行数据
print(df.info())   # 查看DataFrame的信息
print(df.describe()) # 查看数据的统计信息
  1. 选取数据:
python 复制代码
print(df['Name'])   # 选取单列
print(df[['Name', 'Age']])   # 选取多列
  1. 行列索引:
python 复制代码
print(df.iloc[0])   # 按位置选取行
print(df.loc[0])    # 按标签选取行
print(df.iloc[:, 0])   # 按位置选取列
print(df.loc[:, 'Name'])   # 按标签选取列
  1. 筛选数据:
python 复制代码
print(df[df['Age'] > 30])   # 筛选年龄大于30的数据
三、处理缺失值

缺失值是数据分析中常见的问题,Pandas提供了多种方法来处理缺失值。

  1. 查看缺失值:
python 复制代码
print(df.isnull())   # 查看缺失值情况
print(df.isnull().sum())   # 统计每列缺失值的数量
  1. 填充缺失值:
python 复制代码
df['Age'].fillna(df['Age'].mean(), inplace=True)   # 用均值填充缺失值
df['City'].fillna('Unknown', inplace=True)   # 用特定值填充缺失值
  1. 删除缺失值:
python 复制代码
df.dropna(inplace=True)   # 删除包含缺失值的行
四、数据聚合

Pandas提供了强大的数据聚合功能,可以轻松地对数据进行分组、汇总和统计分析。

  1. 分组与聚合:
python 复制代码
grouped = df.groupby('City')
print(grouped['Age'].mean())   # 按城市分组,计算年龄的均值
  1. 多重聚合:
python 复制代码
agg_funcs = {'Age': ['mean', 'max'], 'Name': 'count'}
print(df.groupby('City').agg(agg_funcs))   # 多重聚合
  1. 透视表:
python 复制代码
pivot_table = df.pivot_table(values='Age', index='City', aggfunc='mean')
print(pivot_table)   # 创建透视表
五、DataFrame的合并

Pandas支持多种方式的DataFrame合并,包括连接、合并和拼接。

  1. 连接:
python 复制代码
df1 = pd.DataFrame({
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35]
})

df2 = pd.DataFrame({
    'Name': ['Alice', 'Bob', 'Charlie'],
    'City': ['New York', 'Los Angeles', 'Chicago']
})

merged_df = pd.merge(df1, df2, on='Name')
print(merged_df)   # 按照Name列进行连接
  1. 拼接:
python 复制代码
df1 = pd.DataFrame({
    'Name': ['Alice', 'Bob'],
    'Age': [25, 30]
})

df2 = pd.DataFrame({
    'Name': ['Charlie', 'David'],
    'Age': [35, 40]
})

concat_df = pd.concat([df1, df2])
print(concat_df)   # 按行进行拼接

六、总结

Pandas中的DataFrame是进行数据分析的强大工具,通过掌握DataFrame的创建、基本操作、索引、处理缺失值、数据聚合和合并等功能,可以极大地提升数据分析的效率和效果。希望本文对你理解和使用DataFrame有所帮助,更多高级功能和技巧需要在实际操作中不断探索和积累。

相关推荐
小oo呆1 小时前
【学习心得】Python多线程
python
星夜离尘564 小时前
MATLAB 工程实验:不等间隔流量积分,先把缺口与覆盖率说清楚
开发语言·matlab·时间戳·数据质量·数值积分
happylifetree5 小时前
Python70:核心语法-函数进阶-案例2
python
Ai-_Man5 小时前
Meta Muse还是不可以导出左侧所有对话,只能点进去单条内容导出,方法不对吗?
开发语言·人工智能·ai·小程序·c#·1024程序员节
梓豪csd5 小时前
消息订阅中心:谁该收到哪条通知
java·开发语言·人工智能·低代码·自动化·1024程序员节
王中阳Go5 小时前
两个入口答案不一致先别调模型:6 行入口口径对账表(附脚本)
人工智能·后端·python·大语言模型·1024程序员节
BK贝壳5 小时前
bool-hybrid-array 落盘我只认 .bha:用 Create_BHA / Ask_BHA 做布尔数组序列化
数据结构·python·numpy·1024程序员节
学逆向的5 小时前
C 枚举变量
c语言·开发语言·网络安全
Sakura_j_h_6 小时前
Python 在定时任务里输出 emoji,UnicodeEncodeError 从哪来
开发语言·字符编码·windows·python·定时任务
supabc1237 小时前
欧盟电子发票(XRechnung/Peppol/ZUGFeRD)踩坑记:用 Python 不装 Java 跑官方校验规则
xml·python·开源·电子发票·1024程序员节