有不同的名字买了不同的水果。我需要人名和他以显示的价格购买的不同水果
这是示例输入
NAME FRUIT PRICE
akshay apple 10
ashish orange 20
vaibhav pinapple 30
nagesh guava 10
akshay guava 10
akshay pinapple 30
ashish pinapple 30
vaibhav apple 10
nagesh guava 10
该人购买了不同的水果,我需要在不重复该人姓名的情况下展示它
样本输出
NAME FRUIT PRICE
akshay apple 10
guava 10
pinapple 30
ashish orange 20
pinapple 30
vaibhav pinapple 30
apple 10
nagesh guava 10
水果必须按名称分组
答案 0 :(得分:1)
您可以在两列中同时使用sort_values
,并将重复的值替换为空字符串,请添加mask
+ duplicated
:
df = df.sort_values(['NAME','FRUIT']).reset_index(drop=True)
df['NAME'] = df['NAME'].mask(df['NAME'].duplicated(), '')
print (df)
NAME FRUIT PRICE
0 akshay apple 10
1 guava 10
2 pinapple 30
3 ashish orange 20
4 pinapple 30
5 nagesh guava 10
6 guava 10
7 vaibhav apple 10
8 pinapple 30
另一种可能的显示方式是通过set_index
+ sort_index
创建MutliIndex
:
df = df.set_index(['NAME','FRUIT']).sort_index()
print (df)
PRICE
NAME FRUIT
akshay apple 10
guava 10
pinapple 30
ashish orange 20
pinapple 30
nagesh guava 10
guava 10
vaibhav apple 10
pinapple 30