【问题标题】:How can i find most frequent items in pandas dataframe?如何在熊猫数据框中找到最常见的项目?
【发布时间】:2019-06-08 16:39:22
【问题描述】:

我正在尝试查找在特定季节销售更多的产品,但我遇到了困难。 我创建了一个季节属性,并找到了每个产品的销售季节,我以第 1 季(冬季)为例,我将在所有其他季节做同样的事情,然后我必须在图中显示哪些产品主要在每个季节出售。

这是数据的子集(StockCode、Description、month、Season):

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

谁能帮帮我?

【问题讨论】:

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


【解决方案1】:

这似乎有效:)

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

我是按股票代码(而不是按描述)进行分组的。

【讨论】:

    【解决方案2】:

    基于错误“AttributeError: 'NoneType' object has no attribute 'groupby'”,您的变量 data1 似乎不是数据框,而是,它是一个 NoneType 变量,因此您无法调用 groupby 函数。

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

    此外,使用字典重命名已被弃用,您可能需要查看以下链接以获取替代选项。

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

    【讨论】:

      猜你喜欢
      • 2022-07-22
      • 1970-01-01
      • 1970-01-01
      • 2021-03-14
      • 2021-04-26
      • 1970-01-01
      • 2018-11-22
      • 1970-01-01
      • 2017-04-19
      相关资源
      最近更新 更多