pandas对列数据去重
时间: 2023-10-13 09:23:40 浏览: 150
可以使用 `drop_duplicates()` 方法对 pandas 数据库中的列数据进行去重,例如:
```python
import pandas as pd
# 创建一个包含重复数据的 DataFrame
data = {'fruit': ['apple', 'banana', 'apple', 'orange', 'banana', 'banana'],
'count': [2, 3, 1, 4, 2, 1]}
df = pd.DataFrame(data)
# 对 'fruit' 列进行去重
df_fruit = df.drop_duplicates('fruit')
print(df_fruit)
```
输出结果为:
```
fruit count
0 apple 2
1 banana 3
3 orange 4
```
在这个例子中,我们先创建了一个包含重复数据的 DataFrame,然后使用 `drop_duplicates()` 方法对 'fruit' 列进行去重,最终得到一个仅包含不重复 'fruit' 列的 DataFrame。
相关问题
pandas一列数据去重
在使用 Pandas 进行数据处理时,可以通过 `drop_duplicates` 方法对某一列的数据进行去重操作。该方法允许指定哪一列作为去重的依据,并且可以控制保留重复项的方式。
以下是一个示例,展示如何创建一个 DataFrame 并对其中的一列进行去重:
```python
import pandas as pd
# 创建一个字典并转换为 DataFrame
dic = {'name': ['a', 'b', 'c', 'd'], 'comment': ['abc', '真棒', '真棒', '123']}
df = pd.DataFrame(dic)
# 对 'comment' 列进行去重
df_unique = df.drop_duplicates(subset='comment')
```
在这个例子中,`subset` 参数指定了要基于哪一列进行去重[^1]。
如果你需要读取 Excel 文件并对其中某一列进行去重,然后将结果保存回文件,则可以这样做:
```python
import os
import pandas as pd
# 读取 Excel 文件
df = pd.read_excel("./数据源/" + os.listdir("./数据源/")[0], dtype=str, keep_default_na="")
# 对特定列进行去重
df.drop_duplicates(subset=['想要删除的列名'], keep='first', inplace=True)
# 将去重后的数据保存到新的 Excel 文件
df.to_excel("./结果/去重结果.xlsx", index=None)
```
这里,`keep='first'` 表示保留第一次出现的重复项[^2]。
对于更复杂的情况,例如优先考虑某一列的频数再对另一列去重,可以先计算频数,然后合并回原始 DataFrame,并按频数排序后去重:
```python
from functools import reduce
# 创建一个 DataFrame
df = pd.DataFrame(data=[['A事项', 5], ['B事项', 10], ['C事项', 8], ['A事项', 3], ['A事项', 7], ['B事项', 10], ['B事项', 8], ['A事项', 3], ['A事项', 7]],
columns=['事项名称', '办理人id'])
# 计算“事项名称”的频数
df_count = df['事项名称'].value_counts().rename_axis('事项名称').reset_index(name="事项名称的个数")
# 合并频数信息回到原始 DataFrame
df_with_count = reduce(lambda left, right: pd.merge(left, right, on=['事项名称'], how='left'), [df, df_count])
# 排序以便于后续去重时能够按照频数顺序处理
df_sorted = df_with_count.sort_values(by=['事项名称的个数', '事项名称'], ascending=[True, True])
# 基于“办理人id”列进行去重
df_unique = df_sorted.drop_duplicates(subset='办理人id', keep='first')
```
这段代码首先计算了每个事项名称出现的次数,然后将这些信息合并回原始 DataFrame,接着按照频数和事项名称排序,最后基于“办理人id”列进行去重[^3]。
当你只需要对 Excel 中的一列数据进行去重并将结果保存回去时,可以参考如下简化版本的代码:
```python
import pandas as pd
# 读取 Excel 文件
file_path = "D:\pythonXangmu\quchong\quchong.xlsx"
df = pd.read_excel(file_path, sheet_name='nameSheet')
# 打印去重前的数据
print('去重前\n', df)
# 对 'name' 列进行去重
df_unique = df.drop_duplicates(subset='name')
# 打印去重后的数据
print('去重后\n', df_unique)
# 保存数据到 Excel 文件
df_unique.to_excel('quchong.xlsx', index=False)
```
这段代码展示了如何读取 Excel 文件,执行去重操作,并将结果保存回 Excel 文件[^4]。
---
pandas对一列数据去重
可以使用pandas中的`drop_duplicates()`函数对一列数据进行去重,示例如下:
```python
import pandas as pd
df = pd.read_csv('data.csv')
df['column_name'] = df['column_name'].drop_duplicates()
```
其中,`column_name`为需要去重的列名,`drop_duplicates()`函数默认保留第一个出现的值,可以通过设置`keep`参数来指定保留哪个出现的值。
阅读全文
相关推荐














