pandas 根据一列去重
时间: 2023-11-17 15:01:47 浏览: 121
可以使用Pandas中的unique()方法来根据一列去重。例如,假设我们有一个名为df的数据框,其中包含一列名为“c1”,我们可以使用以下代码来根据“c1”列去重:
```
df['c1'].unique()
```
这将返回一个包含唯一值的numpy数组。如果需要将其转换为Python列表,可以使用tolist()方法。如果需要根据“c1”列的唯一值来过滤数据框,则可以使用以下代码:
```
df[df['c1'].isin(df['c1'].unique())]
```
这将返回一个新的数据框,其中包含根据“c1”列去重后的唯一值。
相关问题
pandas 按某列去重
可以使用 drop_duplicates() 方法的 subset 参数来指定按照某一列或多列去重。例如,如果我们要按照 DataFrame 中的列 col1 去重,则可以这样做:
```python
import pandas as pd
# 创建一个包含重复行的 DataFrame
df = pd.DataFrame({
'col1': [1, 2, 2, 3, 3],
'col2': ['a', 'b', 'b', 'c', 'c']
})
# 按照 col1 列去除重复行并打印结果
df = df.drop_duplicates(subset=['col1'])
print(df)
```
这将输出一个去除了按 col1 列重复行的 DataFrame:
```
col1 col2
0 1 a
1 2 b
3 3 c
```
在 subset 参数中,也可以指定多个列,以按多列去重。例如,如果我们要按照 col1 和 col2 两列去重,则可以这样做:
```python
# 按照 col1 和 col2 列去除重复行并打印结果
df = df.drop_duplicates(subset=['col1', 'col2'])
print(df)
```
这将输出一个去除了按 col1 和 col2 列重复行的 DataFrame:
```
col1 col2
0 1 a
1 2 b
3 3 c
```
pandas对列数据去重
可以使用 `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。
阅读全文