【发布时间】:2018-04-25 11:32:32
【问题描述】:
我一直在研究堆栈溢出问题来解决这个问题,但我还没有找到解决方案。
我有一个数据框df,看起来像这样:
value
pod 22 72 79 86 87 88
time_stamp
2016-10-03 10.160000 0.000000 0.000000 32.004001 5.334000 11.176000
2016-10-10 0.000000 0.000000 0.000000 2.032000 0.000000 0.000000
2016-10-17 16.002001 0.000000 8.636000 21.336001 1.778000 6.604000
2016-10-24 2.032000 6.604000 71.628004 19.050001 0.508000 2.540000
2016-10-31 3.556000 21.590000 0.000000 0.000000 2.032000 2.794000
2016-11-07 3.302000 10.160000 0.762000 0.254000 1.270000 2.540000
2016-11-14 27.686001 44.704001 22.606001 1.524000 26.670001 42.164001
2016-11-21 68.072001 56.896002 14.732000 8.128000 23.114001 63.500002
df.head(5).to_dict() 时的输出如下所示:
{('value', 22): {Timestamp('2016-10-03 00:00:00'): 10.159999966599999,
Timestamp('2016-10-10 00:00:00'): 0.0,
Timestamp('2016-10-17 00:00:00'): 16.0020005107,
Timestamp('2016-10-24 00:00:00'): 2.0320000648500001,
Timestamp('2016-10-31 00:00:00'): 3.5560001134900006},
('value', 72): {Timestamp('2016-10-03 00:00:00'): 0.0,
Timestamp('2016-10-10 00:00:00'): 0.0,
Timestamp('2016-10-17 00:00:00'): 0.0,
Timestamp('2016-10-24 00:00:00'): 6.6040000915499997,
Timestamp('2016-10-31 00:00:00'): 21.589999973800001},
('value', 79): {Timestamp('2016-10-03 00:00:00'): 0.0,
Timestamp('2016-10-10 00:00:00'): 0.0,
Timestamp('2016-10-17 00:00:00'): 8.6360000968000001,
Timestamp('2016-10-24 00:00:00'): 71.628004074100005,
Timestamp('2016-10-31 00:00:00'): 0.0},
我想按列分组并对所有值求和。我被卡住了,因为这似乎是一个多级索引。
当我这样做s = df.sum(axis=1, level=[1]); s 时,它只会删除第一行:value。如何将列相加?
输出可能只是一个简单的数据框,它对 value 列求和,因此它可能类似于:
pod 22 72 79...
2016 100 120 110...
2017 80 90 72...
【问题讨论】:
-
df.sum(axis=1, level='pod') -
我没有收到任何错误消息,但它不是
pod列的总和。 -
@JAG2024 如果你给我这个将非常有帮助:
df.head(5).to_dict()并将其发布在你的问题中。谢谢。 -
这很有帮助,但是您希望您的输出是什么样的?
-
只是一个简单的数据框,其中包含所有
time_stamps的每个pod的总和值。问题再次更新。
标签: python pandas dataframe group-by sum