基于两列的Pandas数据框架中删除重复的内容的攻略如下所述:
- 首先导入必要的库,创建示例数据:
import pandas as pd
df = pd.DataFrame({
'col1': ['A', 'B', 'C', 'D', 'E'],
'col2': ['W', 'X', 'X', 'Y', 'Z']
})
其中,col1和col2分别代表两个列名,有些内容是重复的。
- 使用
duplicated
函数来查找数据框架中的重复行,并创建布尔型的重复数据行:
duplicate_rows_df = df[df.duplicated(['col1', 'col2'])]
print(f'Number of duplicate rows = {duplicate_rows_df.shape[0]}')
其中,duplicated
函数中的列表 col1 和 col2 是需要查重的两列,返回的是重复的行数。
- 使用
drop_duplicates
函数,针对重复的行进行删除:
df.drop_duplicates(subset=['col1', 'col2'], keep='first', inplace=True)
print(df)
其中,subset参数中的 col1 和 col2 是需要查重的两列,keep='first' 指定了只保留第一次出现的重复行,inplace=True 表示直接在原始数据帧中进行修改,如果填写为 False,则返回一个副本数据框架。
整个完整的示例代码如下:
import pandas as pd
df = pd.DataFrame({
'col1': ['A', 'B', 'C', 'D', 'E'],
'col2': ['W', 'X', 'X', 'Y', 'Z']
})
print("原始数据为:")
print(df)
duplicate_rows_df = df[df.duplicated(['col1', 'col2'])]
print(f'Number of duplicate rows = {duplicate_rows_df.shape[0]}')
df.drop_duplicates(subset=['col1', 'col2'], keep='first', inplace=True)
print("去重后的数据为:")
print(df)
输出结果如下所示:
原始数据为:
col1 col2
0 A W
1 B X
2 C X
3 D Y
4 E Z
Number of duplicate rows = 1
去重后的数据为:
col1 col2
0 A W
1 B X
3 D Y
4 E Z
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:基于两列的Pandas数据框架中删除重复的内容 - Python技术站