第一章 数据加载及初步观察
1.1 导入数据
首先需要导入numpy和pandas库:
import numpy as np
import pandas as pd
1.1.1 从CSV文件导入数据
使用pd.read_csv()
函数可以从CSV文件导入数据,创建一个DataFrame
对象:
# 相对路径
df = pd.read_csv('train.csv')
# 绝对路径
df = pd.read_csv('/path/to/train.csv')
df.head(3)
1.1.2 分块读取大型数据集
对于非常大的数据集,可以分块(chunk)读取,避免一次读入内存:
chunker = pd.read_csv('train.csv', chunksize=1000)
for chunk in chunker:
print(chunk)
1.1.3 自定义列名和索引列
可以在导入时通过names
参数重命名列名,index_col
指定索引列:
df = pd.read_csv('train.csv',
names=['乘客ID','是否幸存','等级','姓名','性别','年龄','兄弟','父母子女','票号','票价','客舱','港口'],
index_col='乘客ID')
1.2 初步观察数据
1.2.1 查看数据基本信息
df.info() # 概览信息
df.describe() # 数值型变量统计概要
1.2.2 查看数据表头和底部
df.head(10) # 前10行
df.tail(15) # 后15行
1.2.3 查看缺失值
df.isnull().head(10) # 显示前10行是否为空
1.3 保存数据
df.to_csv('train_chinese.csv', encoding='utf-8')
1.4 数据类型探索
Pandas的两种基本数据类型是Series
(一维)和DataFrame
(二维):
# Series例子
sdata = {'Ohio': 35000, 'Texas': 71000, 'Oregon': 16000, 'Utah': 5000}
example_1 = pd.Series(sdata)
# DataFrame例子
data = {'state': ['Ohio', 'Ohio', 'Ohio', 'Nevada', 'Nevada', 'Nevada'],
'year': [2000, 2001, 2002, 2001, 2002, 2003],
'pop': [1.5, 1.7, 3.6, 2.4, 2.9, 3.2]}
example_2 = pd.DataFrame(data)
1.4.1 查看列名
df.columns
1.4.2 查看某列的所有值
df['Cabin'].values
1.4.3 删除多余列
# 新建列表保留需要的列
kept_cols = ['col1', 'col2']
new_df = df[kept_cols]
# 或使用drop
df.drop(columns=['多余列1','多余列2'], inplace=True)
1.4.4 隐藏部分列
df[['col3', 'col4']]
1.5 数据筛选
1.5.1 根据条件筛选
# 筛选年龄小于10岁乘客
df[df['Age'] < 10]
1.5.2 组合条件筛选
# 年龄10-50岁乘客,保存为新对象
midage = df[(df['Age'] > 10) & (df['Age'] < 50)]
1.5.3 提取特定行/列数据
# 使用iloc通过位置提取
midage.iloc[99, [1,2]] # 第100行的"Pclass"和"Sex"
# 使用loc通过标签提取
midage.loc[99:108, ['Pclass','Name','Sex']] # 第100、105、108行的特定列
loc
通过标签(行标签和列标签)提取,iloc
通过位置(行号和列号)提取。loc
保留了原有的数据顺序。
总之呢,这一章介绍了Pandas导入、保存、查看数据的基本方法,并对DataFrame数据结构及常见索引筛选操作进行了实践,为我们接下来的数据分析操作打好了基础。