假设我有以下pd.DataFrame
:
Name | Color
------------------------------
John | Blue
Greg | Red
John | Yellow
Greg | Red
Greg | Blue
我想为每个名字得到一个不同颜色的表-有多少和它们的值。意思是这样的:
Name | Distinct | Values
--------------------------------------
John | 2 | Blue, Yellow
Greg | 2 | Red, Blue
你知道怎么做吗?你知道吗
将^{} 与^{} 、最后} 一起使用:
rename
列和^{一种避免低效
lambda
的方法:另一方面,我注意到一种趋势,即方法链和/或单行计算。如果性能不是问题,我建议使用您认为更有用/可读的内容。就我个人而言,我更喜欢把计算分成三部分。你知道吗
绩效基准
使用
groupby
+agg
,传递聚合函数的自定义list
:计时
首先,设置-
接下来是计时。似乎
pd.Series.unique
慢得不合理(慢了4倍)。为了提高性能,我将使用np.unique
:使用
lambda x: ', '.join(x.unique())
会导致4倍的减速。使用set
在这个数据上要快一些,但这要视情况而定。 你知道吗性能随数据的变化而变化,在决定使用什么之前,您可能需要根据自己的数据计算所有解决方案的时间。你知道吗
相关问题 更多 >
编程相关推荐