数据转换
删除重复元素
DataFrame对象的duplicated()函数可用来检测重复的行,返回元素为布尔型的Series对象。 每个元素对
应一行,如果该行与其他行重复(也就是说该行不是第一次出现),则元素为True; 如果跟前面不重复,则元
素就为False。
返回元素为布尔值的Series对象用处很大,特别适用于过滤操作。通常,所有重复的行都需要从DataFrame
对象中删除。pandas库的drop_duplicates()函数实现了删除功能,该函数返回的是删除重复行后的DataFmme对
象。
1 dframe = pd.DataFrame({ 'color': ['white','white','red','red','white'],'value': [2,1,3,3,2]})2 print(dframe)3 print(dframe.duplicated())4 #返回元素为布尔值的Series对象用处很大,特别适用于过滤操作。
5 print( dframe[dframe.duplicated()])6 print(dframe.drop_duplicates())7 输出:8 color value9 0 white 2
10 1 white 1
11 2 red 3
12 3 red 3
13 4 white 2
14 0 False15 1False16 2False17 3True18 4True19 dtype: bool20 color value21 3 red 3
22 4 white 2
23 color value24 0 white 2
25 1 white 1
26 2 red 3
用映射替换元素
要用新元素替换不正确的元素,需要定义一组映射关系。在映射关系中,旧元素作为键,新元素作为值。
DataFrame对象中两种旧颜色被替换为正确的元素。还有一种常见情况,是把NaN替换为其他值,比如0。
这种情况下,仍然可以用replace()函数,它能优雅地完成该项操作。
1 frame8 =pd.DataFrame({2 'item': ['ball', 'mug', 'pen', 'pencil', 'ashtray'],3 'color': ['white', 'rosso', 'verde', 'black