【发布时间】:2015-08-29 16:10:54
【问题描述】:
我是熊猫新手。我有一个数据框,第一列是星期几,第二列是值列表。我想总结一下每个工作日的总价值。所以:
day values
0 Thursday 3
1 Thursday 0
2 Friday 0
2 Friday 1
4 Saturday 3
5 Saturday 1
etc...
会变成:
day values
0 Thursday 3
1 Friday 1
2 Saturday 4
etc...
使用summing the number of occurrences per day pandas 我实现了我想要的: - 原来的 df 被称为 value_frame
values_on_day =pd.DataFrame(value_frame.groupby(value_frame.day).apply(lambda subf: subf['values'].sum()))
但是,值和工作日被填充到一个单元格中,以便: 打印字典(values_on_day) 等于:
{0: day
Friday 3
Monday 4
Saturday 7
Sunday 22
Thursday 26
Tuesday 2
Wednesday 4
Name: 0, dtype: int64}
我编写了一个解决方法,将列转换为 dicts,然后是列表,然后再转换回 dict 并转换回 df,但显然这不是这样做的方法。
请您告诉我在原始数据框中获得一周中每一天的总值的正确方法吗?
【问题讨论】:
-
这应该可以工作:
df.groupby('day').sum(),其中df是您的第一个数据帧。 -
快了!
df.head()用[5 rows x 2 columns]给出答案print df.groupby('day').sum()用[7 rows x 1 columns]给出答案,看起来它认为值列名称是标题。