df = pd.DataFrame({'col1': ['A', 'A', 'B', 'B', 'C'], 'col2': [1, 2, 3, 4, 5]}) 怎么让col1列只重复的数据只展示一次 其他列行数不动
时间: 2023-08-05 13:07:26 浏览: 33
你可以使用 `drop_duplicates()` 方法来实现。这个方法可以基于指定的列或所有列判断重复数据,并将重复数据所在的行删除。示例如下:
```python
import pandas as pd
df = pd.DataFrame({'col1': ['A', 'A', 'B', 'B', 'C'], 'col2': [1, 2, 3, 4, 5]})
# 基于 col1 列判断重复数据,并且只保留第一个出现的数据
df = df.drop_duplicates(subset='col1', keep='first')
print(df)
```
输出结果为:
```
col1 col2
0 A 1
2 B 3
4 C 5
```
在这个例子中,我们基于 `col1` 列判断重复数据,并且只保留第一个出现的数据。这样就实现了你想要的效果:`col1` 列只重复的数据只展示了一次,而其他列的行数不变。
相关问题
df1 = pd.DataFrame({'col1': ['A', 'A', 'B', 'B', 'C'], 'col2': [1, 2, 3, 4, 5]}) df = pd.DataFrame({'col1': ['A', 'A', 'B', 'B', 'C'], 'col2': [1, 2, 3, 4, 5]}) df = df.set_index(['col1','col2']) 怎么让df1和df的展现形式一样,但是不用set_index
你可以使用以下代码来实现:
```python
df1 = pd.DataFrame({'col1': ['A', 'A', 'B', 'B', 'C'], 'col2': [1, 2, 3, 4, 5]})
df = pd.DataFrame({'col1': ['A', 'A', 'B', 'B', 'C'], 'col2': [1, 2, 3, 4, 5]})
df = df.pivot(index='col1', columns='col2', values='col2')
df.columns.name = None
df.index.name = None
print(df)
```
这将产生以下输出:
```
1 2 3 4 5
A 1 2 NaN NaN NaN
B NaN NaN 3 4 NaN
C NaN NaN NaN NaN 5
```
这里使用 `pivot` 将原始数据转换为具有所需形式的 DataFrame。然后,我们删除了行名和列名,以便它的展示形式与 `df1` 相同。
df = pd.DataFrame(weights_col)
这行代码创建了一个名为 `df` 的 Pandas DataFrame 对象,其中 `weights_col` 是一个列向量,可能是一个 NumPy ndarray 或 Pandas Series 对象。DataFrame 的每一列都可以有一个名称,但在这种情况下,由于没有指定名称,该列将默认命名为数字索引。如果您想要指定列名,可以使用 `df = pd.DataFrame(weights_col, columns=[your_column_names])`。