【问题标题】:Python and pandas, groupby only column in DataFramePython和pandas,DataFrame中的groupby唯一列
【发布时间】:2020-11-13 20:43:08
【问题描述】:

我想在名为“type”的列中对一些字符串进行分组并将它们插入到一个绘图栏中,问题是从使用 groupby 创建的新表中我无法提取 x 和 y 以在图:

tipol1 = df.groupby(['tipology']).nunique()

tipol1

outpot 给了我作为索引的类型,并根据它们重复的次数进行分组

         number data
typology  
  one     2      113
  two     33     33
  three   12     88
  four    44     888
  five    11     66

在数字列中(其中我有其他值它给了我正确的拓扑列分组) 同样在日期列中它给了我值(我认为将日期分组但不是正确格式的日期) 我还发现:

tipol=df.groupby(['tipology']).nunique()
tipol2 = tipol[['number']]
tipol2

只取数字列, 但无事可做,我需要尖端学列(不在索引中)和具有尖端学分组编号的列来获取 x 和 y 轴以将其导入 plotly!

我最后一次尝试(弄得一团糟):

tipol=df.groupby(['tipology'],as_index=False).nunique()
tipol2 = tipol[['number']]


fig = go.Figure(data=[
go.Bar(name='test', x=df['tipology'], y=tipol2)

])

fig.update_layout(barmode='stack')
fig.show()

任何建议 谢谢!

更新

我将有太多的代码来举一个例子,这对我来说会很困难,也会浪费你的时间。基本上我需要一个 groupby 并添加一个显示分组值的列,例如:

tipology    Date
home        10/01/18
home        11/01/18
garden      12/01/18
garden      12/01/18
garden      13/01/18
bathroom    13/01/18
bedroom     14/01/18
bedroom     15/01/18
kitchen     16/01/18
kitchen     16/01/18
kitchen     17/01/18

我希望这会发生: 通过删除日期列并在执行计数的 DataFrame 中插入值列

tipology   value
home         2
garden       3
bathroom     1
bedroom      2
kitchen      3

然后(我正在使用 jupyer notebook) 离开日期列,并根据它们的分组将对应的值添加到值列中:

  tipology       Date     value
   home        10/01/18     1
   home        11/01/18     1
   garden      12/01/18     2
   garden      12/01/18_____.
   garden      13/01/18     1
   bathroom    13/01/18     1
   bedroom     14/01/18     1
   bedroom     15/01/18     1
   kitchen     16/01/18     2
   kitchen     16/01/18_____.
   kitchen     17/01/18     1

我需要将这些列分配给 x 轴和 y 轴以将它们导入图表!所以所有列都不应该是索引

【问题讨论】:

  • tipol1 = df.groupby(['tipology']).nunique().reset_index()?
  • 你也可以使用tipol1 = df.groupby('tipology', as_index=False).nunique()群的这个方便输入
  • 正如我在答案的评论中所写,将索引设置为 False 后的列拓扑返回数值(在这种情况下为 1)
  • @scofx 请考虑共享您的数据样本,如here 解释的那样,这样那些寻求提供可行建议的人就不必整夜重新创建您的挑战,而不是创建一个实际的答案.
  • @vestland 我更新了这个问题,试图更好地解释自己!

标签: python pandas plotly


【解决方案1】:

默认情况下,groupby 方法将返回一个数据框,其中您分组的字段将位于数据框的索引中。您可以通过在 group by 中设置 as_index=False 来调整此行为。那么tipology 仍将是返回的数据框中的一列:

tipol1 = df.groupby('tipology', as_index=False).nunique()

【讨论】:

  • 感谢您的建议,不幸的是,tipology 列采用数值 1(将索引设置为 False)
  • 不确定我是否理解。您能否更新您的代码以准确重现该问题?
  • 我更新了这个问题,试图更好地解释自己!
猜你喜欢
  • 2016-07-16
  • 1970-01-01
  • 2020-10-04
  • 2021-05-24
  • 2019-01-31
  • 1970-01-01
  • 1970-01-01
  • 2020-01-28
  • 1970-01-01
相关资源
最近更新 更多