python数据分析之pandas(10)数据转换

1. 删除重复元素

通过duplicated()函数可以找出重复的行,操作如下:
frame.duplicated() //判断是否重复行
frame[frame.duplicated()] //删除重复行
frame.drop_duplicates() //删除重复行
示例如下:

>>> frame = pd.DataFrame({'color': ['white', 'white','black', 'black'], 'value':
[1,2,3,3]})
>>> frame.duplicated()
0    False
1    False
2    False
3     True
dtype: bool
>>> frame[frame.duplicated()]
   color  value
3  black      3
>>> frame.drop_duplicates()
   color  value
0  white      1
1  white      2
2  black      3
>>>

2. 用映射替换元素

ser.replace(np.nan, 0) //Series元素替换
newcolors = {‘red’: ‘b’, ‘black’: ‘d’} //key为旧元素,value为新元素
frame.replace(newcolors) //DataFrame通过映射替换元素

3. 用映射添加元素

可以通过dict定义一列新的信息,key为已存在列的值,value为新的列的值

>>> frame = pd.DataFrame({'color': ['red', 'black']})
>>> frame
   color
0    red
1  black
>>> price = {'red': 1, 'black': 2}
>>> frame['price'] = frame['color'].map(price)
>>> frame
   color  price
0    red      1
1  black      2

这里通过frame[‘price’] = frame[‘color’].map(price),映射出一个新列,列名为price
同样还有其它方式如:
frame[‘d’] = frame[‘price’].map(lambda x: x*2) //lambda表达式,新列名为d,值为price列2倍
frame[‘d’] = frame[‘price’].map(double) //自定义函数double
代码如下:

>>> def double(x):
...   return x*2
...
>>> frame['d'] = frame['price'].map(double)
>>> frame
   color  price  d
0    red      1  2
1  black      2  4
>>>

4. 重命名轴索引

通过rename函数可以重命名索引(可更改部分索引)和列名:
frame.rename(index={1: ‘first’}, columns={‘item’: ‘object’}, inplace=True),相关参数如下:
index //更改索引,默认为更改索引
inplace //替换调用对象本身,否则只返回新的对象

发布了127 篇原创文章 · 获赞 10 · 访问量 24万+

猜你喜欢

转载自blog.csdn.net/u012599545/article/details/104366530