如何在熊猫数据框中找到最常使用的物品?

时间:2019-06-08 16:39:22

标签: python-3.x pandas jupyter-notebook

我试图找到特定季节销售更多的产品,但是却遇到了困难。 我创建了“季节”属性,并找到了每种产品的销售季节,并以“季节1(冬季)”为例,我将在所有其他季节进行相同的操作,然后我必须在地块中显示哪些产品主要在每个季节出售。

这是数据的子集(股票代码,描述,月份,季节):

22460,EMBOSSED GLASS TEALIGHT HOLDER,12,1
84832,ZINC WILLIE WINKIE  CANDLE STICK,12,1
23084,RABBIT NIGHT LIGHT,12,1
84879,ASSORTED COLOUR BIRD ORNAMENT,12,1
84945,MULTI COLOUR SILVER T-LIGHT HOLDER,12,1
22113,GREY HEART HOT WATER BOTTLE,12,1
23356,LOVE HOT WATER BOTTLE,12,1
22726,ALARM CLOCK BAKELIKE GREEN,12,1
22727,ALARM CLOCK BAKELIKE RED ,12,1
16016,LARGE CHINESE STYLE SCISSOR,12,1
21916,SET 12 RETRO WHITE CHALK STICKS,12,1
84692,BOX OF 24 COCKTAIL PARASOLS,12,1
84946,ANTIQUE SILVER T-LIGHT GLASS,12,1
21684,SMALL MEDINA STAMPED METAL BOWL ,12,1
22398,MAGNETS PACK OF 4 SWALLOWS,12,1
23328,SET 6 SCHOOL MILK BOTTLES IN CRATE,12,1
23145,ZINC T-LIGHT HOLDER STAR LARGE,12,1
22466,FAIRY TALE COTTAGE NIGHT LIGHT,12,1
22061,LARGE CAKE STAND  HANGING STRAWBERY,12,1
23275,SET OF 3 HANGING OWLS OLLIE BEAK,12,1
21217,RED RETROSPOT ROUND CAKE TINS,12,1

我的熊猫数据框看起来像 Pandas Dataframe

我试图获取下面的数据框,其中创建了一个新属性,该属性计算了某商品按升序购买的次数。 Required

我尝试了以下代码,但没有成功。

df_top_freq = data1.groupby(['Description'])['StockCode'].agg(
    {"code_count": len}).sort_values("code_count", ascending=False).head(n).reset_index()


---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-32-8d5e96d38ae0> in <module>
----> 1 df_top_freq = data1.groupby(['Description'])['StockCode'].agg(
      2     {"code_count": len}).sort_values("code_count", ascending=False).head(n).reset_index()

AttributeError: 'NoneType' object has no attribute 'groupby'

还有

count = data1['StockCode'].value_counts() 
print(count)

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-33-958a6e8a501c> in <module>
----> 1 count = data1['StockCode'].value_counts()
      2 print(count)

TypeError: 'NoneType' object is not subscriptable

有人可以帮我吗?

2 个答案:

答案 0 :(得分:0)

基于错误“ AttributeError:'NoneType'对象没有属性'groupby'”,您的变量 data1 似乎不是数据框,而是,它是一个NoneType变量,因此您无法调用groupby函数。

检查data1的值,然后尝试重新填充变量的数据,然后重试。

还不建议使用字典进行重命名,您可能需要检查以下链接以了解其他选项。

Rename result columns from Pandas aggregation ("FutureWarning: using a dict with renaming is deprecated")

答案 1 :(得分:0)

这似乎在起作用:)

df_top_freq = data1.groupby("StockCode")['StockCode'].agg(
  {"code_count": len}).sort_values("code_count", ascending=False).head(n).reset_index()

我是按照股票代码(而不是按说明)分组的。