pandas 按照某两列数据去重
时间: 2023-12-30 08:24:46 浏览: 70
可以按照某两列数据去重的方法如下:
1. 首先,合并两列数据成一个列表,并对列表进行排序处理。
```python
df['ls'] = list(map(lambda x,y:[x,y],df['a_attr_single'],df['b_attr_single']))
df['ls'] = df['ls'].apply(lambda x:','.join(sorted(x)))
```
2. 然后,删除被合并的两列数据。
```python
df.drop(columns=['a_attr_single', 'b_attr_single'], inplace=True)
```
3. 接下来,对DataFrame进行去重操作。
```python
df = df.drop_duplicates()
```
4. 最后,将合并的列表拆分成两列数据。
```python
df['attr1'], df['attr2'] = df['ls'].str.split(',', 1).str
```
这样就可以按照某两列数据进行去重了。
相关问题
dataframe基于两列值去重
您好,这是一个关于数据处理的问题,我可以为您提供解答。对于基于两列值去重的操作,您可以使用 Pandas 中的 drop_duplicates 函数,同时指定 subset 参数来选择需要去重的列。示例代码如下:
```
import pandas as pd
# 创建示例 DataFrame
df = pd.DataFrame({
'A': [1, 2, 2, 3, 3],
'B': ['a', 'a', 'b', 'b', 'c'],
'C': [0, 1, 2, 3, 4]
})
# 基于 A 和 B 两列进行去重
df = df.drop_duplicates(subset=['A', 'B'])
# 输出去重后的结果
print(df)
```
以上代码将保留第一次出现的 A 和 B 值相同的行,输出去重后的结果如下:
```
A B C
0 1 a 0
1 2 a 1
3 3 b 3
4 3 c 4
```
python对两列数据同时进行去重
可以使用pandas中的drop_duplicates()函数对两列数据同时进行去重操作。例如:
```python
import pandas as pd
df = pd.read_csv('data.csv')
df = df.drop_duplicates(['col1', 'col2'])
```
其中,'col1'和'col2'为需要同时进行去重的两列数据的列名。