dataframe根据重复的列,将重读的列放到新的dataframe
时间: 2024-05-11 14:14:55 浏览: 7
可以使用pandas的`duplicated`函数和`loc`属性来实现。以下是示例代码:
```python
import pandas as pd
# 创建示例数据
data = {'A': [1, 2, 3, 4, 4, 5, 6],
'B': ['a', 'b', 'c', 'd', 'd', 'e', 'f'],
'C': [10, 20, 30, 40, 40, 50, 60]}
df = pd.DataFrame(data)
# 找到重复的数据
duplicated = df[df.duplicated(subset='A', keep=False)]
# 将重复的数据放到新的dataframe中
new_df = duplicated.loc[:, ['A', 'B', 'C']]
```
在此示例中,我们创建了一个包含重复值的DataFrame,然后使用`duplicated`函数找到重复的行。然后,我们使用`loc`属性选择'A'、'B'和'C'列,并将它们放入一个新的DataFrame中。
相关问题
dataframe根据重复的列放到新的dataframe
可以使用 Pandas 库中的 `groupby` 方法和 `apply` 方法来实现将重复的列放到新的 DataFrame 中,具体代码如下:
```python
import pandas as pd
# 创建示例 DataFrame
df = pd.DataFrame({'A': [1, 2, 3, 1, 2, 3], 'B': [4, 5, 6, 7, 8, 9], 'C': [10, 11, 12, 13, 14, 15]})
# 按列 A 进行分组,并将重复的列放到新的 DataFrame 中
new_df = df.groupby('A').apply(lambda x: x.iloc[:, 1:]).reset_index(level=1, drop=True)
print(df)
print(new_df)
```
上述代码中,首先创建了一个示例 DataFrame,其中列 A 存在重复值。然后使用 `groupby` 方法按列 A 进行分组,再使用 `apply` 方法将每个分组中除了列 A 以外的列放到新的 DataFrame 中。最后使用 `reset_index` 方法将新的 DataFrame 中的索引重置为默认的整数索引。
输出结果如下:
```
A B C
0 1 4 10
1 2 5 11
2 3 6 12
3 1 7 13
4 2 8 14
5 3 9 15
B C
A
1 4 10
1 7 13
2 5 11
2 8 14
3 6 12
3 9 15
```
可以看到,新的 DataFrame 中只包含重复的列 B 和 C,且按照原始 DataFrame 中的分组顺序排列。
dataframe根据重复数据放到新的dataframe
可以使用 pandas 库中的 drop_duplicates() 方法去除重复数据,并将结果存储到新的 DataFrame 中。下面是一个示例代码:
```python
import pandas as pd
# 创建示例数据
data = {'Name': ['Alice', 'Bob', 'Charlie', 'Bob', 'David', 'Charlie'],
'Age': [25, 30, 35, 30, 40, 35],
'City': ['New York', 'Paris', 'London', 'Paris', 'Tokyo', 'London']}
df = pd.DataFrame(data)
# 根据重复数据放到新的 DataFrame
df_duplicates = df[df.duplicated()]
print(df_duplicates)
```
上述代码首先创建了一个包含重复数据的 DataFrame `df`,然后使用 `df.duplicated()` 找到重复的行并存储到新的 DataFrame `df_duplicates` 中。输出结果为:
```
Name Age City
3 Bob 30 Paris
5 Charlie 35 London
```
可以看到,`df_duplicates` 中只包含重复的行数据。如果想要保留第一个出现的重复数据,可以在 `drop_duplicates()` 方法中设置参数 `keep='first'`。例如:
```python
df_duplicates = df[df.duplicated(keep='first')]
```
此时,`df_duplicates` 中只会保留第一个出现的重复数据。