【问题标题】:Groupby not displaying what it is countingGroupby 不显示它的计数
【发布时间】:2020-11-26 05:43:03
【问题描述】:

您好,我正在使用 groupby 来计算数据中每种类型标签的计数,但它没有显示信息是什么,也没有计算所有标签。

作为参考,我将其设置为 tkinter GUI,它上传 CSV 并将其导出为带有分解信息的 xlsx。此外,我正在使用 pd.dataframe 为每一列指定一个名称。我创建了一个包含所有标签类型的列,我希望尽可能地显示计数,因为它不想显示它正在计数的标签。

为了澄清,我在终端中得到了我想要的输出(除了计数为 0 的标签),但我没有在 excel 中得到标签。我的输出是我在 excel 中看到的

我正在使用的代码

 df1 = df.explode('Ticket_Labels').groupby(['Ticket_Labels'])[['Labels']].size()

输入示例

Ticket_Labels       Labels
   a1, b2             a1
     a1               a2
     a5               a5
   b3, a1             b1
                      b2
                      b3

我的输出

 3
 1
 1
 1

期望的输出

 a1   3
 a2   0
 a3   0
 a5   1
 b1   0
 b2   1
 b3   1

更新

我也尝试在输入 excel 时使用数据框。

df1 = df.explode('Ticket_Labels').groupby(['Ticket_Labels']).agg({'Labels':'size'})

df3 = pd.DataFrame({'Label':df10, 'Count': df1})

df3.to_excel (r'C:\Users\mcilvn\Desktop\test.xlsx', index = False, header = True)

我的输出如下

Label    Count
  a1      ('L', 'a', 'b', 'e', 'l', 's')
  a2      ('L', 'a', 'b', 'e', 'l', 's')

更新

我也尝试过这个,因为我总共有 25 个标签,但并不是所有的票都使用了所有这些标签,所以我想为没有票的标签填写 0。

df10 只是所有标签的列表

df1 = df.explode('Ticket_Labels').groupby('Ticket_Labels').size().fillna(value = 0)
df3 = pd.DataFrame({'Labels': df10, 'Count': df1})

print (df1)

但我得到一个错误,数组长度 25 与索引长度 23 不匹配

【问题讨论】:

  • df.explode('Ticket_Labels') 的输出是什么样的?
  • 不确定,它不允许我自己运行它。我得到 ValueError:(194, 18)中传递值的形状,索引暗示(158. 18)。我从上一个问题中得到答案,但他们没有帮助解释为什么它没有给我信息
  • 我能够让 df.explode 自行工作以查看输出。因此,因为我将标签值作为 (a1, d3) 并带有逗号,所以它将整行加倍以便能够将它们分开。例如,lab1 为下一列的标签 (a1, d3) 将使其成为两行,a1 和 d3 在不同的行中,并且都在下一列中表示 lab1

标签: python excel pandas


【解决方案1】:
 df1 = df.explode('Ticket_Labels').groupby(['Ticket_Labels']).agg({'Labels':'count'})

 df1 = df.explode('Ticket_Labels').groupby(['Ticket_Labels']).agg({'Labels':'size'})

【讨论】:

  • 第二个给了我之前得到的相同输出。计数一也只给了我没有相应标签的数字,但它给了我不正确的数字
  • 我真的可以使用 df.explode('Ticket_Labels') 的答案
  • 就像我说的,如果我尝试在没有其余代码行的情况下运行它,它会给我一个错误。我也尝试在没有爆炸部分的情况下运行它,我只是得到一个 keyerror
  • 这是我之前的问题,我得到了这个答案 - stackoverflow.com/questions/64974686/pandas-excel-groupby-count 这就是它所说的 df.explode 所做的 - pandas.pydata.org/pandas-docs/stable/reference/api/…
  • 如果我在没有爆炸部分的情况下运行它,我会得到 typerror: unhashable type: list.我将代码打开到一个新文件中并调用该文件,而不是使用 GUI,这样我就可以打印输出了。它出现在输出中,它会告诉我每个标签的用途,但在 excel 中它不会
猜你喜欢
  • 2017-01-11
  • 2021-08-06
  • 1970-01-01
  • 2014-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-11
  • 1970-01-01
相关资源
最近更新 更多