前言
在数据分析的过程中,pandas库可以对数据进行预处理,在数据清洗阶段可以带来较大的便利,下面主要是针对比较常用的操作做一些记录,方便遗忘后的查找
常用操作
import pandas as pd
写入文件
name = ['小明', '小红']
gender = ['男','女']
write_dict = {
'name': name, # 以列为key-value
'gender': gender}
df = pd.DataFrame(write_dict)
df.to_csv('XX.csv', index=None,sep=',') # 确定分隔符
读取文件
data = pd.read_csv('XX.csv', sep=',')
# 可以用列名去取数据
name = data['name']
gender = data['gender']
extract_data = data[['name','gender']]
# 也可以用列数去取数据
name = data[0]
df.iloc[] # iloc很好用
DataFrame
# 普通操作
df = pd.read_csv('XX.csv', sep=',')
df.shape # (行数,列数)
df.length # 行数
df.columns # 列名
df.types # 数据类型
df.values # 遍历列值
# 统计计算
count() # 显示非Nan值的数据项数量
median() # 中位数
max() # 最大值
min() # 最小值
mode() # 众数
# 数据聚合
df.groupby('gender') # 可单个或多个
# 串联和附加
pd.concat([df[:3], df[3:])
df[:3].append(df[5:])
# 两个csv文件合成
pd.merge(file1, file2, on='name') # how可判断内部或者外部 inner、outer
缺失值
# 确定缺失值
df.notnull()
df.isnull()
df.isnull().any() # 获取含有空值的列
df.isnull().all() # 全部为空值的列
# 填充为0
df.fillna(0)
df.dropna() # 直接丢弃含有NA的行记录
# 重复
df.duplicated() # 判断重复数据记录cf
df.drop_duplicates() # 删除数据记录中所有列值相同的记录
df.drop_duplicates(['col1']) # 删除数据记录中col1值相同的记录
处理日期
pd.date_range('1/1/2019', periods=42,freq='D') # 1.1起的42天