视频来源链接: https://www.bilibili.com/video/BV1SE411679D?p=1
目录
导入库读取文件查看数据表信息数据清洗数据合并数据索引数据提取数据筛选数据汇总数据统计
导入库
import numpy
as np
import pandas
as pd
读取文件
# 创建数据表
data
= pd
.DataFrame({
'列名':[该列的值
],
....})
# 保存创建的数据表
, path为xxx
.csv文件路径
data
.to_csv(path
, index
=False
)
# 读取csv文件
, path为xxx
.csv文件路径
read_data
= pd
.read_csv(path
)
查看数据表信息
# 查看数据维度
read_data
.shape
# 查看数据基本信息(维度、列名称、数据格式、所占空间等)
read_data
.info()
# 查看每一列的数据格式
read_data
.dtypes
# 查看某一列格式
, key
= 列名
read_data
[key
].dtype
# 查看空值
read_data
.isnull()
# 查看某一列空值
read_data
[key
].isnull()
# 查看某一列的唯一值
read_data
[key
].unique()
# 查看某一列值的分布
read_data
[key
].value_counts(dropna
=False
) # dropna
=False表示该列有空值也打印出空值个数
# 查看数据表的值
read_data
.values # 返回值为除去列名和序号后的数据
# 查看列名称
read_data
.columns
# 查看前n行
, 后n行数据
read_data
.head(n
) # n可以不写,默认值为
5
read_data
.tail(n
)
数据清洗
#
填充默认原数据表不会被修改(xxx
.fillna(inplace
=False
)),返回值为修改后的列表
; 若(xxx
.fillna(inplace
=True
)),则原数据表会被修改。
# 用
0值填充空值
read_data
[key
].fillna(value
=0)
# 用空值前或后的值填充空值
read_data
[key
].fillna(method
='ffill') # 前
read_data
[key
].fillna(method
='bfill') # 后
# 使用均值填充
read_data
[key
].fillna(read_data
[key
].mean(), inplace
=True
)
# 清除某一列的字符空格
read_data
[key
] = read_data
[key
].map(str
.strip
)
# 大小写转换
read_data
[key
] = read_data
[key
].str
.lower() # 转小写
read
-data
[key
] = read_data
[key
].str
.upper() # 转大写
# 更改数据格式
read_data
[key
].astype(dtype
) # dtype为字符串格式
, 如
'str', 'int64'...
# 更改列名称
read_data
.rename(columns
={原名
:修改后的名称
, ...})
# 删除后出现重复的值
read_data
[key
].drop_duplicates()
# 删除先出现的重复值
read_data
[key
].drop_duplicates(keep
='last
)
# 数据替换
read_data
[key
].replace(原数据
, 替换后的数据
) # 该列所有与原数据相等的值都会替换成你想要改成的数据值
数据合并
data2
= pd
.DataFrame({
'列名':[该列的值
],
....})
# 数据表合并
:merge
, join
, concat
# merge
# 内合并
data_inner
= pd
.merge(read_data
, data2
, on
=key
, how
='inner') # 交集
, on
=key表示两个表key列相同才把data2的数据加到read_data后面
# 左合并
data_left
= pd
.merge(read_data
, data2
, on
=key
, how
='left') # 将key列相同值的data2添加到read_data后面
, read_data未被添加的用空值填充
# 右合并
data_right
= pd
.merge(read_data
, data2
, on
=key
, how
='right') # # 将key列相同值的read_data添加到data2前面
, data2未被添加的用空值填充
# 并集
data_outer
= pd
.merge(read_data
, data2
, on
=key
, how
='outer').
# append
, 在原来的数据表中追加一行
data3
= pd
.DataFrame({
'列名':[该列的值
],
....})
result
= data2
.append(data3
)
数据索引
# 设置索引列
data2
.set_index(key
)
# 索引列还原
data2
.reset_index(drop
=True
)
# 按照特定列的值排序
data2
.sort_values(by
=[key
])
# 按照索引列排序
data2
.sort_index()
数据提取
数据筛选
数据汇总
数据统计
随机采样