姓名 | 性别 | |
---|---|---|
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 | ? | 小霸王 |
1 | 1 | 掌上游戏机 |
2 | ?? | PS3 |
3 | NaN | 开关 |
在 [29]:
df。fillna(0)
出[29]:
价格 | 游戏机 | |
---|---|---|
0 | ? | 小霸王 |
1 | 1 | 掌上游戏机 |
2 | ?? | PS3 |
3 | 0 | 开关 |
在 [27]:
dict_ = { np。NaN:0,'?' :0,'??' :0 }
df。替换(dict_)
出[27]:
价格 | 游戏机 | |
---|---|---|
0 | 0 | 小霸王 |
1 | 1 | 掌上游戏机 |
2 | 0 | PS3 |
3 | 0 | 开关 |
使用replace()函数,对values进行替换操作¶
replace还经常用来替换NaN元素¶
在 [ ]:
2) map()函数:新建一列¶
使用map()函数,由已有的列生成一个新列
适合处理某一单独的列。
在 [32]:
DF = 数据帧(NP。随机。randint(0,150,(5,3)),
index=list('东南西北中'),
columns=['数学','语文','英语'])
DF
出[32]:
数学 | 语文 | 英语 | |
---|---|---|---|
东 | 82 | 13 | 118 |
南 | 30 | 107 | 79 |
西 | 88 | 74 | 58 |
北 | 116 | 31 | 132 |
中 | 1 | 30 | 5 |
在 [33]:
#增加一列 python,python的成绩根据数学, y= x * 0.5 +35
df['python'] = df['数学'].map(lambda X : X *0.5+35)
在 [35]:
DF
出[35]:
数学 | 语文 | 英语 | 蟒蛇 | |
---|---|---|---|---|
东 | 82 | 13 | 118 | 76.0 |
南 | 30 | 107 | 79 | 50.0 |
西 | 88 | 74 | 58 | 79.0 |
北 | 116 | 31 | 132 | 93.0 |
中 | 1 | 30 | 5 | 35.5 |
在 [36]:
DEF 级(10):
如果 X > 90:
return '优秀'
elif X > 70:
return '不错'
否则:
return '辣鸡'
在 [37]:
#考试成绩的评定
df['评语'] = df['python'].map(level)
在 [38]:
DF
出[38]:
数学 | 语文 | 英语 | 蟒蛇 | 评语 | |
---|---|---|---|---|---|
东 | 82 | 13 | 118 | 76.0 | 不错 |
南 | 30 | 107 | 79 | 50.0 | 辣鸡 |
西 | 88 | 74 | 58 | 79.0 | 不错 |
北 | 116 | 31 | 132 | 93.0 | 优秀 |
中 | 1 | 30 | 5 | 35.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'对象不可迭代
在 [40]:
df [ 'java' ] = df [ 'python' ]。变换(lambda X:X + 10)
在 [41]:
DF
出[41]:
数学 | 语文 | 英语 | 蟒蛇 | 评语 | java的 | |
---|---|---|---|---|---|---|
东 | 82 | 13 | 118 | 76.0 | 不错 | 86.0 |
南 | 30 | 107 | 79 | 50.0 | 辣鸡 | 60.0 |
西 | 88 | 74 | 58 | 79.0 | 不错 | 89.0 |
北 | 116 | 31 | 132 | 93.0 | 优秀 | 103.0 |
中 | 1 | 30 | 5 | 35.5 | 辣鸡 | 45.5 |
3) rename()函数:替换索引¶
仍然是新建一个字典
使用rename()函数替换行索引
在 [50]:
dict_ = {'东':'东邪','西':'西毒','南':'南帝','北':'北丐','中':'中神通'}
df。重命名(dict_)
出[50]:
数学 | 语文 | 英语 |
---|