【问题标题】:unable to use groupby function in pandas for dataframe无法在 pandas 中将 groupby 函数用于数据框
【发布时间】:2020-08-21 15:08:27
【问题描述】:

我有一个包含 100 多行的数据框,我需要在其中使用 groupby 提取值 w.r.t 'High' 列。但是我做不到。

我的数据框示例是:

           Date     Open     High  ...    Volume              
           Date     Open     High  ...    Volume 
0    24-04-2020  1840.10  1851.60  ...     93384      
1    23-04-2020  1786.00  1891.70  ...    453645     
2    22-04-2020  1746.00  1789.10  ...    103696      
3    21-04-2020  1775.00  1794.00  ...    149222

我已将数据框存储在变量 data_frame 中,当我尝试使用 data_frame.groupby('High') 时,我收到以下错误消息:

“ValueError: Grouper for 'High' not 1-dimensional”。

知道如何解决这个问题吗?

【问题讨论】:

  • 看起来数据帧头重复了两次,这使得它是多维的。检查前 2 行的列名。应该只有一个吗?
  • @MayankPorwal 否,标题为 2 行。
  • 那么如果标题在2行上就是问题,我猜它是多索引,所以尝试data_frame.groupby(('High', 'High')),但如果可能的话我宁愿修复列
  • @Ben.T 感谢您的建议。它对我有用。如何在 groupby 之后使用日期列仅打印此列中的最大值?
  • 不确定您在这里想要什么。如果您的数据只是您提供的几行,您能否在问题中添加预期输出?

标签: python-3.x pandas pandas-groupby


【解决方案1】:

我认为问题出在标题上,标题具有多索引,因此仅指定一个列名会给您带来错误。 您可以使用df.columns 设置列标题。如果要访问High 列,那么简单地使用loc 或`data_frame['High']

data_frame.columns = ['Date', 'Open', 'High', 'Volume'] #add more 

如果要根据日期获取High 列的最大值,则必须在Date 上使用groupby 并投影High 列。

data_frame.groupby(['Date'])['High'].max()

【讨论】:

    猜你喜欢
    • 2020-05-28
    • 1970-01-01
    • 2018-06-19
    • 2022-01-24
    • 2019-02-16
    • 1970-01-01
    • 2015-06-15
    • 2021-09-23
    • 1970-01-01
    相关资源
    最近更新 更多