从重复行中获取行号
Get row numbers from duplicate rows
我需要阅读 excel 文件并突出显示重复的行,而不编辑 excel 或添加新的 column/rows。我阅读了 excel 文件:
df = pd.read_excel(path2, sheet_name='Sheet1')
与
df.drop_duplicates(subset=df.columns.difference(['Mark 4']))
我得到所有重复的行,不包括 'Mark 4'。问题是我无法提取这些行号来使用它们
df.style.applymap(color_negative_red)
突出显示 excel 中的那些行,因为它们不包含在 df.
中
我试过了
dfToList = redovi['unique_row_to_index'].tolist()
但由于没有唯一行,我无法提取数据。
df.drop_duplicates(subset=df.columns.difference(['Mark 4']))
的输出是:
Type1 Type2
0 w A
11 w A
12 w A
18 w A
19 w A
20 w A
[6 行 x 170 列]
我需要提取那些不属于 excel 列的行号,并将它们用作将来格式化的列表。
您可以使用带有 DataFrame.duplicated
和 keep=False
的自定义函数来掩码指定列名的重复行:
df = pd.DataFrame({'Type1':['w'] * 3 + ['a'],
'Type2':['A'] * 3 + ['b'],
'Mark 4': range(4)})
print (df)
Type1 Type2 Mark 4
0 w A 0
1 w A 1
2 w A 2
3 a b 3
测试:
print (df.duplicated(subset=df.columns.difference(['Mark 4']), keep=False))
0 True
1 True
2 True
3 False
dtype: bool
def highlight(x):
c = 'background-color: red'
df1 = pd.DataFrame('', index=x.index, columns=x.columns)
m = x.duplicated(subset=x.columns.difference(['Mark 4']), keep=False)
df1 = df1.mask(m, c)
return df1
df.style.apply(highlight, axis=None)
我需要阅读 excel 文件并突出显示重复的行,而不编辑 excel 或添加新的 column/rows。我阅读了 excel 文件:
df = pd.read_excel(path2, sheet_name='Sheet1')
与
df.drop_duplicates(subset=df.columns.difference(['Mark 4']))
我得到所有重复的行,不包括 'Mark 4'。问题是我无法提取这些行号来使用它们
df.style.applymap(color_negative_red)
突出显示 excel 中的那些行,因为它们不包含在 df.
我试过了
dfToList = redovi['unique_row_to_index'].tolist()
但由于没有唯一行,我无法提取数据。
df.drop_duplicates(subset=df.columns.difference(['Mark 4']))
的输出是:
Type1 Type2
0 w A
11 w A
12 w A
18 w A
19 w A
20 w A
[6 行 x 170 列]
我需要提取那些不属于 excel 列的行号,并将它们用作将来格式化的列表。
您可以使用带有 DataFrame.duplicated
和 keep=False
的自定义函数来掩码指定列名的重复行:
df = pd.DataFrame({'Type1':['w'] * 3 + ['a'],
'Type2':['A'] * 3 + ['b'],
'Mark 4': range(4)})
print (df)
Type1 Type2 Mark 4
0 w A 0
1 w A 1
2 w A 2
3 a b 3
测试:
print (df.duplicated(subset=df.columns.difference(['Mark 4']), keep=False))
0 True
1 True
2 True
3 False
dtype: bool
def highlight(x):
c = 'background-color: red'
df1 = pd.DataFrame('', index=x.index, columns=x.columns)
m = x.duplicated(subset=x.columns.difference(['Mark 4']), keep=False)
df1 = df1.mask(m, c)
return df1
df.style.apply(highlight, axis=None)