pandas数据清洗的基本函数

panda数据清洗

1.常规语法

(1)判断缺失值 data.isnull().any()
(2)缺失值填充:df.fillna(50) 表示在缺失值的地方填充值为50
(3)将清洗后的数据进行以csv格式导出:data.to_csv(‘cleanfile.csv’ encoding=’utf-8’)
(4)修改列名:data = data.rename(columns = {'春花': '秋月' })该处表示将春花改为秋月
(5)查看数据集的信息:data.info() 如列名是否存在空值,字段类型,以及文档的大小等
(6)重置索引:df.reset_index(drop=True) 如删除了几行数据,索引就会改变,改代码就可以实现索引重置,重新生成索引
(7)将对应列中的元素进行替换:
df["往事"] = df["往事"].str.replace("1", "2").astype('int64') 表示将往事这一列中所有的元素中的1替换成2
(8)添加新的列:df.assign(小楼 = lambda x : x["春花"] * 9 / 5 + 32)
表示生成小楼这一列,这一列里面的值等于春花这一列进行运算得到的。
(9)对选定的列进行统一计算:[df["故国"].apply(lambda x: x+1)] 该代码表示对故国这一列的每行数据进行加一操作
(10)删除列:data1.pop('时间') 表示删除时间这一列

2.数据集拼接:
(1)join方法

横向拼接-指的是拼接的方向向横向延申

a.join(b)
表示将数据集a,b进行横向拼接,即添加列。默认按照a的索引进行拼接。

a.join(b, how = "right"): 表示按照b的索引进行拼接,默认时left,也就是按照左边的列进行拼接。

a.join(b, how = "inner")
表示按照共同索引进行拼接

a.join(b,how='outer')
a,b中所有的数据都进行拼接

(2)merge方法

pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=True, suffixes=('_x', '_y'), copy=True)

参数名称说明
left/right两个不同的 DataFrame 对象。
on指定用于连接的键(即列标签的名字),该键必须同时存在于左右两个 DataFrame 中,如果没有指定,并且其他参数也未指定, 那么将会以两个 DataFrame 的列名交集做为连接键。
left_on指定左侧 DataFrame 中作连接键的列名。该参数在左、右列标签名不相同,但表达的含义相同时非常有用。
right_on指定左侧 DataFrame 中作连接键的列名。
left_index布尔参数,默认为 False。如果为 True 则使用左侧 DataFrame 的行索引作为连接键,若 DataFrame 具有多层索引(MultiIndex),则层的数量必须与连接键的数量相等。
right_index布尔参数,默认为 False。如果为 True 则使用左侧 DataFrame 的行索引作为连接键。
how要执行的合并类型,从 {‘left’, ‘right’, ‘outer’, ‘inner’} 中取值,默认为“inner”内连接。
sort布尔值参数,默认为True,它会将合并后的数据进行排序;若设置为 False,则按照 how 给定的参数值进行排序。
suffixes字符串组成的元组。当左右 DataFrame 存在相同列名时,通过该参数可以在相同的列名后附加后缀名,默认为(‘_x’,‘_y’)。
copy默认为 True,表示对数据进行复制

pd.merge(a, b)
常规拼接,横向拼接。拼接a,b这两列。默认按照inner方式拼接,只拼接索引值相同的数据。

3.时间格式的转化

该参数指定了要转换为datetime的对象。如果提供Dataframe,则该类型至少需要以下列:“年”、“月”、“日”,才能转化为datetime。

data1['时间'] = pd.to_datetime(data1[{"year", "month", "day", "hour"}])

表示将data1中的四列时间数据转化为datetime格式。
原始图片
处理后产生新的列:
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值