Python 如何在保留列的行数据的同时删除列中的重复值?

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,它有一列重复的值/索引,我想按“Name”列对它进行分组,但不向它执行任何聚合。我已经研究了
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)]

非常感谢所有的选择!我在找第一个用空值替换重复项的方法。非常感谢您提供的所有选项!我在寻找第一个用空值替换重复项的方法。