pandas数据变换(一)

本文介绍了pandas中处理数据的一些关键操作:1) 使用duplicated()和drop_duplicates()删除重复值,可以根据指定列判断,并选择保留第一次或最后一次出现的值。2) 通过map()函数进行数据映射转换,如不同类型肉的转换。3) 使用fillna()和replace()灵活替换数据中的特定值。4) 利用rename()方法重命名DataFrame的轴索引,支持传入inplace=True直接修改原始数据。
摘要由CSDN通过智能技术生成

1.删除重复值

import numpy as np
import pandas as pd

data=pd.DataFrame({'k1':['one','two']*3+['two'],'k2':[1,1,2,3,3,4,4]})
print(data)

#输出:
 k1  k2
0  one   1
1  two   1
2  one   2
3  two   3
4  one   3
5  two   4
6  two   4

DataFrame的duplicated()方法会返回一个布尔类型的Series,默认判断每行是否重复,根据的是前一行来判断是否重复

print(data.duplicated())

#输出:
0    False
1    False
2    False
3    False
4    False
5    False
6     True
dtype: bool

#DataFrame的drop_duplicates()会删除重复的部分,返回一个新的DataFrame,这里重复的部分表明是row index 为6的行
#记住这里其实不是上面那个duplicated,它是将duplicated中的d 改为了s
print(data.drop_duplicates())

#输出:
 k1  k2
0  one   1
1  two   1
2  one   2
3  two   3
4  one   3
5  two   4

上面的方法都有一个弊端就是考虑到了所有的列,可以指定一部分的数据来检测重复值.

data['v1']=range(7) #range()为python自带的生成数字的函数
print(data)
print(data.drop_duplicates(['k1'])) #这里指定删除‘k1’列中的所有重复值,因为默认删除的是行,所以保留的是k1中没有重复值的行

#输出:
   k1  k2  v1
0  one   1   0
1  two   1   1
2  one   2   2
3  two   3   3
4  one   3   4
5  two   4   5
6  two   4   6
    k1  k2  v1
0  one   1   0
1  two   1   1

duplicated()和drop_duplicates()默认是保留第一次观测到的数据的组合,意思就是如果下一行是重复的和第一次观测到的重复的。那么就去掉下一行的数据,而duplicated()就会在下一行观测到的重复数据标记为True。而传入参数keep=‘last’就会保留最后一行。

print(data.duplicated(['k1','k2'],keep='last'))
print(data.drop_duplicates(['k1','k2'],keep='last'))

#输出:
0    False
1    Fals
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值