pandas dataframe column_数据清洗:pandas与excel对比学习

65537fad868a4ac400cae3b9a8cfa4d2.png

数据质量准则:完全合一

完整性:单条数据是否存在空值,统计的字段是否完整

全面性:观察某一列的数据,excel中 看一列数据的个数,pandas 中,http://df.info()观察字段的类型、数据量;常识判断:数据定义、单位标识、数值本身

合法性:数据类型、内容、大小合法性

唯一性:数据是否存在重复值,一般需要 id 字段作为唯一标识

pandas 与 excel 功能对比学习​www.cnblogs.com

一、数据读取

pandas 中的数据结构名称叫做 DataFrame(二维表结构),Series(一行或一列)

# 文件读取前,先查看下文件格式

二、数据获取

# 获取列数据
df['column_name']

#获取多列 多列中,df[] 括号里边是一个列表
df[['columns_name1','columns_name2']]

# 获取行数据
loc 标签,数字或字符串。自定义索引获取数据
df.loc[行号,列名]

iloc 只能是自带的数字型索引
df.iloc[0,:]    #获取第一行数据

#整体数据排序
df.sort_values(by='columns_name',ascending = False)

三、删除空值

# dropna 删除数据 

四、数据填充

#使用字典填充数据,inplace 原数据上替换
df.fillna({"columns_name":0},inplace = True)

#使用前一个或后一个值填充
#method = ffill(使用前一个) bfill (使用后一个),axis 控制前后
# 使用赋值方式更新数据
df.loc[:,'columns_name'] = df['columns_name'].fillna(method='ffill',axis=0)
df

五、重复值处理

# 返回值是bool 类型

六、数据合并

#join 基于index(行索引) 链接 DataFrame的列。 行合并
# how = left right  outer(全部)  inner(只找相同的)
#lsuffix 对于列索引columns 有重名时使用
df3.join(df4,how = 'left',lsuffix='_1',rsuffix='_2')
#多个表合并
df3.join([df4,df5])

# merge 基于 column 连接   how left right  outer inner   列合并
pd.merge(df1,df2,how= 'left')
pd.merge(df1,df2,on='column_name',how='')
pd.merge(df1,df2,left_on='',right_on='')
# 有相同的index,合并列

#concat 合并相同的excel、csv 或者是给DataFrame 添加行或列时使用
行与列直接合并,默认使用 axis=0
pd.concat([df1,df2],axis=0,sort = True,ignore_index= True) 

七、分组聚合

# 分组
df.groupby(by = 'column_name')

#分组后取某一列,拿最大值。聚合函数只返回一个最大值。注意,只返回一个值
data = df.groupby(by='column_name')['columns_name'].max()

#分组后,返回多个值时,需要使用agg或者 apply
#给每列使用不同聚合函数
dict_mapping = {
   'column_name1':['max','min'],
   'column_name2':'sum'
}
df.groupby('key1').agg(dict_mapping)

八、时间序列

# 增加年列
df['year'] = df['日期'].dt.year

# 增加季度
df['quarter'] = df['日期'].dt.to_period('Q')

# 增加月份列
df['month'] = df['日期'].dt.month

# 增加天列
df['year'] = df['日期'].dt.day

# 增加周几列
df['week'] = df['日期'].dt.weekday_name

# 增加第几天列
df['weed_day'] = df['日期'].dt.weekday
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值