1.删除重复行
- 使用duplicated()函数检测重复的行
- 返回元素为布尔类型的Series对象
- 每个元素对应一行,如果该行不是第一次出现,则元素为True
- 参数keep:first(标记重复行第一次出现的位置)、last(标记重复行最后一次出现的位置,默认)、False(标记所有重复行的位置)
- 参数subset:在每一行对比时,只比较此列数据是否有重复值
import numpy as np
import pandas as pd
def make_df(indexs,columns):
data = [[str(j)+str(i) for j in columns] for i in indexs]
df = pd.DataFrame(data=data,index=indexs,columns=columns)
return df
df = make_df([1,2,3,4],list('ABCD'))
df.loc[1] = df.loc[2]
print(df)
print('#####################################')
print(df.duplicated())
print('#####################################')
print(df.duplicated(keep='first'))
print('#####################################')
print(df.duplicated(keep='last'))
print('#####################################')
print(df.duplicated(keep=False))
print('#####################################')
print(df.duplicated(subset=['A','B']))
- 使用drop_duplicates()函数删除重复行
- 如果两行不完全重复,则无法直接删除,须使用subset参数
- 使用keep参数控制保留哪一数据
import numpy as np
import pandas as pd
def make_df(indexs,columns):
data = [[str(j)+str(i) for j in columns] for i in indexs]
df = pd.DataFrame(data=data,index=indexs,columns=columns)
return df
df = make_df([1,2,3,4],list('ABCD'))
df.loc[1] = df.loc[2]
df.loc[1,'D'] = 'F'
print(df)
print('#####################################')
print(df.drop_duplicates(subset=['A', 'B', 'C']))
print('#####################################')
print(df.drop_duplicates(subset=['A', 'B', 'C'],keep='last'))
2.数据映射
映射的含义:创建一个映射关系表,把values元素和一个特定的标签或字符串绑定
- replace()函数:替换元素
import numpy as np
import pandas as pd
data = np.array([
[60, 70, 80, 90],
[65, 75, 85, 95],
[62, 72, 82, 92],
[68, 78, 88, 98]
])
index = ['小明','小红','小王','小张']
columns = ['Python','Java','C++','C#']
df = pd.DataFrame(data=data,index=index,columns=columns)
print(df)
print('####################################')
df2 = df.replace({85:101,98:102})
print(df2)
- map()函数:适合处理某一单独的列,一般用在Series,不能用于DataFrame,可以使用lambda函数
import numpy as np
import pandas as pd
data = np.array([
[60, 70, 57, 90],
[65, 55, 78, 95],
[62, 93, 82, 92],
[68, 78, 99, 98]
])
index = ['小明','小红','小王','小张']
columns = ['

最低0.47元/天 解锁文章
2097

被折叠的 条评论
为什么被折叠?



