pandas数据处理笔记整理(基础)

本文详细介绍了使用Python的Pandas库进行数据处理的方法,包括如何删除重复数据、映射操作及图片压缩等。通过实例展示了如何利用duplicated()和drop_duplicates()函数去除重复行,以及replace()、map()和rename()函数的应用。

pandas数据处理

在 [1]:
​x
 
导入 numpy  为 np
将 pandas  导入为 pd
来自 pandas  导入 DataFrame

1、删除重复元素

使用duplicated()函数检测重复的行,返回元素为布尔类型的Series对象,每个元素对应一行,如果该行不是第一次出现,则元素为True

在 [9]:
 
df = DataFrame({'姓名':['张三','李四','王五','赵六','张三','李四','王五','赵六'],'性别':['男']*8})
DF
出[9]:
姓名性别
0张三
1李四
2王五
3赵六
4张三
5李四
6王五
7赵六
在 [11]:
 
cond = df。重复的()
在 [14]:
 
df。降(DF [ COND ]。指数)
出[14]:
姓名性别
0张三
1李四
2王五
3赵六

df.duplicated() 返回bool型的值,如果不重复返回false ,有重复值返回Ture

在 [ ]:
 

使用drop_duplicates()函数删除重复的行

在 [15]:
 
df。drop_duplicates()
出[15]:
姓名性别
0张三
1李四
2王五
3赵六
在 [20]:
 
pd。concat([ df,df ],轴 = 1)。Ť。drop_duplicates()。Ť
出[20]:
姓名性别
0张三
1李四
2王五
3赵六
4张三
5李四
6王五
7赵六

图片压缩

2. 映射

映射的含义:创建一个映射关系列表,把values元素和一个特定的标签或者字符串绑定

需要使用字典:

map = { 'label1':'value1', 'label2':'value2', ... }

包含三种操作:

  • replace()函数:替换元素
  • 最重要:map()函数:新建一列
  • rename()函数:替换索引

1) replace()函数:替换元素

使用一种数据类型dict

在 [28]:
 
df = DataFrame({'游戏机':['小霸王','GameBoy','PS3','Switch'],'价格':['?',1,'??',np.nan]})
DF
出[28]:
价格游戏机
0?小霸王
11掌上游戏机
2??PS3
3NaN开关
在 [29]:
 
df。fillna(0)
出[29]:
价格游戏机
0?小霸王
11掌上游戏机
2??PS3
30开关
在 [27]:
 
dict_ = { np。NaN:0,'?' :0,'??' :0 }
df。替换(dict_)
出[27]:
价格游戏机
00小霸王
11掌上游戏机
20PS3
30开关

使用replace()函数,对values进行替换操作

replace还经常用来替换NaN元素

在 [ ]:
 

2) map()函数:新建一列

使用map()函数,由已有的列生成一个新列

适合处理某一单独的列。

在 [32]:
 
DF = 数据帧(NP。随机。randint(0,150,(5,3)),
              index=list('东南西北中'),
              columns=['数学','语文','英语'])
DF
出[32]:
数学语文英语
8213118
3010779
西887458
11631132
1305
在 [33]:
 
#增加一列 python,python的成绩根据数学,  y= x * 0.5 +35
df['python'] = df['数学'].map(lambda X : X *0.5+35)
在 [35]:
 
DF
出[35]:
数学语文英语蟒蛇
821311876.0
301077950.0
西88745879.0
1163113293.0
130535.5
在 [36]:
 
DEF  级(10):
    如果 X  >  90:
        return '优秀'
    elif  X  >  70:
        return '不错'
    否则:
        return '辣鸡'
在 [37]:
 
#考试成绩的评定
df['评语'] = df['python'].map(level)
在 [38]:
 
DF
出[38]:
数学语文英语蟒蛇评语
821311876.0不错
301077950.0辣鸡
西88745879.0不错
1163113293.0优秀
130535.5辣鸡
在 [39]:
 
df [ 'python' ]。地图(NP。的意思)
-------------------------------------------------- ------------------------- 
类型错误                                  回溯(最近最后调用)
 <IPython的输入-39-5f29d73d9c07>在<模块> ()
- - > 1  df [ 'python' ] 。地图(总和)

C:\ ProgramData \ Anaconda3 \ lib \ site-packages \ pandas \ core \ series.py in map (self,arg,na_action)
   2352          else :
   2353              #arg是一个函数
- > 2354              new_values = map_f ( values , arg )
   2355  
   2356          返回self._constructor(new_values,

大熊猫/ _libs / SRC / inference.pyx在pandas._libs.lib.map_infer ()

TypeError:'float'对象不可迭代

transform()和map()类似

transform是变形的意思

transform中的值只能是一个function

在 [40]:
 
df [ 'java' ] = df [ 'python' ]。变换(lambda  X:X  + 10)
在 [41]:
 
DF
出[41]:
数学语文英语蟒蛇评语java的
821311876.0不错86.0
301077950.0辣鸡60.0
西88745879.0不错89.0
1163113293.0优秀103.0
130535.5辣鸡45.5

3) rename()函数:替换索引

仍然是新建一个字典

使用rename()函数替换行索引

在 [50]:
 
dict_ = {'东':'东邪','西':'西毒','南':'南帝','北':'北丐','中':'中神通'}
df。重命名(dict_)
出[50]:
数学语文英语
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值