Если хотите заменить дублированные значения на пустые строки, используйте Series.duplicated
на Series.mask
:
df['Name'] = df['Name'].mask(df['Name'].duplicated(), '')
print (df)
Name Data1 Data2
0 A 0.1 1.1
1 0.2 1.2
2 0.3 1.3
3 B 0.6 1.6
4 0.7 1.7
5 0.8 1.8
6 C 1.0 2.0
7 1.1 2.1
8 1.2 2.2
В MultiIndex
для первого просмотра также рабочие, но НЕ, значения только в виде по умолчанию НЕ отображаются на первом (ых) уровне (ах) при дублировании:
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
Проверка документов, в [21]: , не пропущено данные, только перемещенные в MultiIndex
:
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
Или, если преобразовать значения MultiIndex
в список:
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)]