Python 如何在保留列的行数据的同时删除列中的重复值?
我有一个dataframe,它有一列重复的值/索引,我想按“Name”列对它进行分组,但不向它执行任何聚合。我已经研究了Python 如何在保留列的行数据的同时删除列中的重复值?,python,pandas,dataframe,multi-index,Python,Pandas,Dataframe,Multi Index,我有一个dataframe,它有一列重复的值/索引,我想按“Name”列对它进行分组,但不向它执行任何聚合。我已经研究了Dataframe.groupby()函数,但是从我搜索的内容来看,您有点被迫执行聚合。我也尝试过Dataframe.set_index('Name'),然后执行Dataframe.sort_index(inplace=True),但由于某种原因,它返回了一个Nonetype,我觉得这很明显,但我不能完全理解 这是我的数据帧: Name Data1 Data2 A .1
Dataframe.groupby()
函数,但是从我搜索的内容来看,您有点被迫执行聚合。我也尝试过Dataframe.set_index('Name')
,然后执行Dataframe.sort_index(inplace=True)
,但由于某种原因,它返回了一个Nonetype
,我觉得这很明显,但我不能完全理解
这是我的数据帧:
Name Data1 Data2
A .1 1.1
A .2 1.2
A .3 1.3
B .6 1.6
B .7 1.7
B .8 1.8
C 1.0 2.0
C 1.1 2.1
C 1.2 2.2
这就是我想要的:
Name Data1 Data2
A .1 1.1
.2 1.2
.3 1.3
B .6 1.6
.7 1.7
.8 1.8
C 1.0 2.0
1.1 2.1
1.2 2.2
如果要将重复值替换为空字符串,请使用: 在
多索引中
首次查看时,它也起作用,但不起作用。如果重复,值仅在默认视图中显示,而不在第一级显示:
df1 = df.set_index(['Name','Data1'])
print (df1)
Data2
Name Data1
A 0.1 1.1
0.2 1.2
0.3 1.3
B 0.6 1.6
0.7 1.7
0.8 1.8
C 1.0 2.0
1.1 2.1
1.2 2.2
检查,没有遗漏的数据,只移动到多索引:
with pd.option_context('display.multi_sparse', False):
print (df1)
Data2
Name Data1
A 0.1 1.1
A 0.2 1.2
A 0.3 1.3
B 0.6 1.6
B 0.7 1.7
B 0.8 1.8
C 1.0 2.0
C 1.1 2.1
C 1.2 2.2
或者如果将多索引的值转换为列表:
print (df1.index.tolist())
[('A', 0.1), ('A', 0.2), ('A', 0.3),
('B', 0.6), ('B', 0.7), ('B', 0.8),
('C', 1.0), ('C', 1.1), ('C', 1.2)]
如果要将重复值替换为空字符串,请使用:
在多索引中
首次查看时,它也起作用,但不起作用。如果重复,值仅在默认视图中显示,而不在第一级显示:
df1 = df.set_index(['Name','Data1'])
print (df1)
Data2
Name Data1
A 0.1 1.1
0.2 1.2
0.3 1.3
B 0.6 1.6
0.7 1.7
0.8 1.8
C 1.0 2.0
1.1 2.1
1.2 2.2
检查,没有遗漏的数据,只移动到多索引:
with pd.option_context('display.multi_sparse', False):
print (df1)
Data2
Name Data1
A 0.1 1.1
A 0.2 1.2
A 0.3 1.3
B 0.6 1.6
B 0.7 1.7
B 0.8 1.8
C 1.0 2.0
C 1.1 2.1
C 1.2 2.2
或者如果将多索引的值转换为列表:
print (df1.index.tolist())
[('A', 0.1), ('A', 0.2), ('A', 0.3),
('B', 0.6), ('B', 0.7), ('B', 0.8),
('C', 1.0), ('C', 1.1), ('C', 1.2)]
非常感谢所有的选择!我在找第一个用空值替换重复项的方法。非常感谢您提供的所有选项!我在寻找第一个用空值替换重复项的方法。