dataframe根据重复的列放到新的dataframe
时间: 2023-11-18 19:00:48 浏览: 108
pandas.DataFrame的pivot()和unstack()实现行转列
可以使用 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 中的分组顺序排列。
阅读全文