python的drop duplicates_pandas.DataFrame.drop_duplicates 用法介绍

Pandas去重
本文介绍Pandas中DataFrame.drop_duplicates()函数的使用方法,包括参数详解及示例代码,展示如何处理数据中的重复值。

如下所示:

DataFrame.drop_duplicates(subset=None, keep='first', inplace=False)

subset考虑重复发生在哪一列,默认考虑所有列,就是在任何一列上出现重复都算作是重复数据

keep 包含三个参数first, last, False,first是指,保留搜索到的第一个重复数据,之后的都删除;last是指,保留搜索到的最后一个重复数据,之前的搜索到的重复数据都删除,False是指,把所有搜索到的重复数据都删除,一个都不保留,即如果有两行数据重复,把两行数据都删除,而不是保留其中一行。默认参数是first。

补充知识:python3删除数据重复值,只保留第一项。drop_duplicates()函数使用介绍

原始数据如下:

f 列的前3个数据都有重复项,现在要将重复值删去,只保留第一项或最后一项。

使用drop_duplicates()

drop_duplicates(self, subset=None, keep='first', inplace=False)

subset :如['a']代表a列中的重复值全部被删除

keep:保留第一个值,参数为first,last

inplace:是否替换原来的df,默认为False

结果:

可以看到 f 列中的重复值都被删除,且保留了第一项

以上这篇pandas.DataFrame.drop_duplicates 用法介绍就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。

原文链接:https://www.cnblogs.com/yaos/p/9837448.html

### ### Pandas DataFrame 的创建与基础操作 Pandas 是一个用于数据分析的 Python 库,它提供了快速、灵活以及表达力强的数据结构,旨在使“关系”或“标签”数据的操作既简单又直观[^2]。DataFramePandas 中最重要的数据结构之一,类似于 Excel 表格或 SQL 表格,可以存储和操作具有标签的二维数据。 可以通过多种方式创建 DataFrame,例如使用字典、列表或 NumPy 数组。以下是一个使用字典创建 DataFrame 的示例: ```python import pandas as pd data = { 'Name': ['Tom', 'Bob', 'Jack'], 'Age': [25, 30, 35], 'City': ['北京', '上海', '广州'] } df = pd.DataFrame(data) ``` 该示例创建了一个包含姓名、年龄和城市三列的 DataFrame,每一列的数据类型可以是不同的。DataFrame 的索引默认为从 0 开始的整数索引,也可以自定义索引。 ### ### 数据的加载与查看 在实际的数据分析过程中,通常需要从外部文件加载数据。例如,可以从 CSV 文件中读取数据将其转换为 DataFrame: ```python df = pd.read_csv('data.csv') ``` 加载数据后,可以使用 `head()` 和 `tail()` 方法查看数据的前几行或后几行: ```python print(df.head()) # 查看前5行数据 print(df.tail()) # 查看后5行数据 ``` 此外,还可以使用 `dtypes` 属性查看各列的数据类型: ```python print(df.dtypes) # 显示每列的数据类型 ``` PandasPython 常用数据类型之间有明确的对照关系,例如整数、浮点数、字符串等在 Pandas 中分别对应 `int64`、`float64` 和 `object` 类型[^5]。 ### ### 数据的选取与操作 #### 获取列 可以通过列名获取指定列的数据。例如,获取 `Name` 列: ```python print(df['Name']) # 获取 Name 列 ``` 如果需要获取多列数据,可以传入一个包含列名的列表: ```python print(df[['Name', 'Age']]) # 获取 Name 和 Age 列 ``` 需要注意的是,不能使用 `df.loc['列名']` 来获取列数据[^5]。 #### 获取行 可以使用 `loc` 和 `iloc` 方法获取指定行的数据。`loc` 通过行索引标签获取数据,而 `iloc` 通过行号获取数据: ```python print(df.loc[0]) # 获取索引为 0 的行 print(df.iloc[0]) # 获取第 0 行 ``` 如果传入的参数类型错误,例如将 `loc` 与整数索引混合使用,或者将 `iloc` 与字符串索引混合使用,则会引发错误。 #### 获取行列 可以同时获取指定行和列的数据。例如,获取索引为 0 的行和 `Name` 与 `Age` 列: ```python print(df.loc[0, ['Name', 'Age']]) ``` 也可以使用 `iloc` 获取连续多列数据: ```python print(df.iloc[:, 0:2]) # 获取所有行的前两列 ``` ### ### 数据的分组与聚合 在数据分析中,经常需要对数据进行分组和聚合计算。Pandas 提供了 `groupby()` 方法,可以根据某些列的值对数据进行分组,对每个分组应用聚合函数: ```python grouped = df.groupby('City').mean() print(grouped) # 按城市分组,计算各城市的平均年龄 ``` 除了 `mean()`,还可以使用 `sum()`、`count()`、`max()`、`min()` 等聚合函数。例如,计算每个城市的频数: ```python print(df['City'].value_counts()) # 统计每个城市出现的次数 ``` ### ### 数据清洗与转换 在实际工作中,数据清洗是数据分析的重要步骤之一。Pandas 提供了多种方法用于数据清洗,例如处理缺失值、重复值以及类型转换。 可以使用 `isnull()` 方法检查数据是否包含缺失值: ```python print(df.isnull()) # 检查缺失值 ``` 如果需要删除包含缺失值的行,可以使用 `dropna()` 方法: ```python df_clean = df.dropna() ``` 如果需要填充缺失值,可以使用 `fillna()` 方法: ```python df_filled = df.fillna(0) # 用 0 填充缺失值 ``` 对于重复数据,可以使用 `duplicated()` 和 `drop_duplicates()` 方法进行处理: ```python print(df.duplicated()) # 检查重复行 df_unique = df.drop_duplicates() # 删除重复行 ``` 此外,还可以使用 `astype()` 方法转换列的数据类型: ```python df['Age'] = df['Age'].astype(float) # 将 Age 列转换为浮点数 ``` ### ### 数据可视化 Pandas 集成了 Matplotlib,可以直接使用 DataFrame 的 `plot` 方法进行基本的数据可视化。例如,绘制直方图: ```python df['Age'].plot(kind='hist') # 绘制年龄的直方图 ``` 也可以绘制折线图或散点图: ```python df.plot(x='Age', y='Salary', kind='scatter') # 绘制年龄与工资的散点图 ``` 这些图表可以帮助快速了解数据的分布和关系。 ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值