【问题标题】:Sum of same days of complex Pandas Data Frame复杂 Pandas 数据框的当天总和
【发布时间】:2020-09-26 02:36:59
【问题描述】:

该问题基于以下 SO:

Groupy brings only one key from Pandas dictionary

数据框看起来像:

ALUP11  Return %    Day CESP6   Return %    Day TAEE11  Return %    Day
Data                                    
2020-08-13  23.81   0.548986    13.0    29.38   -2.747435   13.0    28.33   -0.770578   13.0
2020-09-01  23.68   1.067008    1.0     30.21   0.365449    1.0     28.55   1.205246    1.0
2020-08-31  23.43   -1.139241   31.0    30.10   -2.336145   31.0    28.21   -0.669014   31.0
2020-08-28  23.70   1.455479    28.0    30.82   1.615562    28.0    28.40   0.459851    28.0
2020-08-27  23.36   -0.680272   27.0    30.33   -1.717434   27.0    28.27   0.354988    27.0

从字典中获取数据框后,我需要同一天的总和,但是

result = df.groupby('Day').agg({'Return %': ['sum']})
result

得到错误:

ValueError: Grouper for 'Day' not 1-dimensional

对于每个符号,我想总结一个月的同一天。在示例中,我有 3 个符号,所以结果应该是:

【问题讨论】:

  • 你有 MultiIndex 吗?
  • 我不认为它是多索引...只是对于每个符号我有 3 列不同的数据(关闭、返回百分比和天)。我想在同一天使用列 Return % 执行 sum 操作,因此它会跳过某些列以获得结果。
  • assert not isinstance(df.columns, pd.MultiIndex) 返回错误?
  • 我想这超出了我的范围
  • 如果你运行上面的代码会发生什么?

标签: python pandas sum


【解决方案1】:

如果您的数据与previous question 的答案中的数据相似,则错误是因为您有两列名为Day。由于它们似乎具有相同的数据,您可以删除最后一列,然后您的 groupby 将起作用:

df = df.iloc[:, :-1].groupby('Day')

【讨论】:

  • 两列,因为每个“日”列都指代一个不同的符号……所以,2 个符号,2 个名为“日”的列。这就是为什么它有点复杂。
猜你喜欢
  • 1970-01-01
  • 2023-03-11
  • 1970-01-01
  • 1970-01-01
  • 2018-05-01
  • 1970-01-01
  • 2021-07-24
  • 1970-01-01
  • 2020-06-30
相关资源
最近更新 更多