pandas重复项里找唯一不重复的值 代码
时间: 2024-03-19 16:43:34 浏览: 36
可以使用 `pd.Series.value_counts()` 方法来统计每个值出现的次数,然后筛选出只出现一次的值。示例代码如下:
```python
import pandas as pd
# 创建一个包含重复值的 Series
s = pd.Series([1, 2, 3, 3, 4, 4, 5, 5, 6])
# 统计每个值出现的次数
counts = s.value_counts()
# 筛选出只出现一次的值
unique_values = counts[counts == 1].index
print(unique_values)
```
输出结果为:
```
Int64Index([1, 2, 6], dtype='int64')
```
其中 `unique_values` 就是包含所有唯一不重复的值的 Series。
相关问题
pandas多列重复项里找唯一不重复的值 代码
可以使用 `pd.DataFrame.duplicated()` 方法来找出重复行,然后再使用 `pd.DataFrame.drop_duplicates()` 方法去除重复行。示例代码如下:
```python
import pandas as pd
# 创建一个包含重复行的 DataFrame
df = pd.DataFrame({
'A': [1, 2, 3, 3, 4, 4, 5, 5, 6],
'B': [7, 8, 9, 9, 10, 10, 11, 11, 12],
'C': [13, 14, 15, 15, 16, 16, 17, 17, 18]
})
# 找出重复行
duplicated_rows = df.duplicated()
# 去除重复行,只保留第一次出现的行
unique_df = df[~duplicated_rows]
print(unique_df)
```
输出结果为:
```
A B C
0 1 7 13
1 2 8 14
2 3 9 15
4 4 10 16
6 5 11 17
8 6 12 18
```
其中 `unique_df` 就是包含所有唯一不重复的行的 DataFrame。可以看到,每一列都有唯一不重复的值。如果只需要某些列的唯一不重复的值,可以使用 `pd.DataFrame.drop_duplicates()` 方法指定某些列来去重。例如,如果只需要列 A 和 B 的唯一不重复的值,可以这样写:
```python
unique_values = df[['A', 'B']].drop_duplicates()
print(unique_values)
```
输出结果为:
```
A B
0 1 7
1 2 8
2 3 9
4 4 10
6 5 11
8 6 12
```
其中 `unique_values` 就是包含所有唯一不重复的行的 DataFrame,只包含了列 A 和 B。
根据df的C列进行去除重复项操作
在Pandas DataFrame中,如果你想基于"C"列去除重复项,可以使用`drop_duplicates()`函数。这个函数可以根据指定的列(在这里就是"C"列)找出重复的行并返回一个新的DataFrame,保留唯一的一项。以下是操作步骤:
```python
import pandas as pd
# 假设df是一个已经存在的DataFrame
# 先确认'df'存在且'C'列是你想要去重的列
if 'C' in df.columns:
df_unique = df.drop_duplicates(subset='C')
else:
print("Column 'C' not found in the DataFrame.")
df_unique
```
这段代码首先检查"C"列是否存在,然后对"C"列进行去重操作。结果存储在一个新的DataFrame `df_unique`中,它只包含了"C"列不重复的行。
如果你希望直接在原地修改DataFrame,而不是创建新的DataFrame,可以使用`inplace=True`参数:
```python
df.drop_duplicates(subset='C', keep='first', inplace=True)
```
这里`keep='first'`表示默认只保留每个重复组的第一个观测值。
阅读全文