如何按列对值进行排序,然后只保留n个列? 这就是我正在努力解决的问题:
import pandas as pd
import numpy as np
file = ('example.csv')
df = pd.read_csv(file)
df = df[['ID', 'Hero', 'Customer']].drop_duplicates('ID', keep="first")
df.head()
Output:
ID | Hero | Customer
45 Rambo Nils
90 Superman Sophia
33 Superman Sophia
55 Rambo Sophia
12 Hulk Sophia
为了获得我想要的格式(本例中为热图),我做了以下工作:
heatmap = df.groupby(['Hero', 'Customer']).size().unstack(fill_value=0)
heatmap
Output:
Ida Jonas Morgan Sophia Nils
Rambo 0 0 3 11 1
Superman 2 0 0 66 0
Hulk 0 0 0 7 0
我要做的是按降序对其排序,以便将具有最高值的列推到左侧,如下所示:
想要的输出:
Sophia Morgan Ida Nils Jonas
Rambo 11 3 0 1 0
Superman 66 0 2 0 0
Hulk 7 0 0 0 0
如果我想保留n个客户,我该怎么做? 我遇到的另一个问题是,ID在数据操作中丢失,我不确定在使用count()函数之后如何处理它。 我觉得我已经做了
有
df
:尝试:
结果:
相关问题 更多 >
编程相关推荐