小编mst*_*een的帖子

在pandas中使用cumsum on group()

来自熊猫新手:我的数据看起来基本上是这样的 -

 data1=pd.DataFrame({'Dir':['E','E','W','W','E','W','W','E'], 'Bool':['Y','N','Y','N','Y','N','Y','N'], 'Data':[4,5,6,7,8,9,10,11]}, index=pd.DatetimeIndex(['12/30/2000','12/30/2000','12/30/2000','1/2/2001','1/3/2001','1/3/2001','12/30/2000','12/30/2000']))
data1
Out[1]: 
           Bool  Data Dir
2000-12-30    Y     4   E
2000-12-30    N     5   E
2000-12-30    Y     6   W
2001-01-02    N     7   W
2001-01-03    Y     8   E
2001-01-03    N     9   W
2000-12-30    Y    10   W
2000-12-30    N    11   E
Run Code Online (Sandbox Code Playgroud)

我希望将它分组为多个级别,然后执行cumsum():

例如,像running_sum=data1.groupby(['Bool','Dir']).cumsum()< - (不起作用)

输出看起来像:

Bool Dir Date        running_sum
N    E   2000-12-30           16
     W   2001-01-02            7
         2001-01-03           16
Y    E   2000-12-30            4
         2001-01-03           12
     W   2000-12-30           16
Run Code Online (Sandbox Code Playgroud)

我的"喜欢"代码显然不是很接近.我做了很多尝试,并学到了很多关于如何不这样做的新事物.

谢谢你提供的所有帮助.

python group-by pandas

12
推荐指数
2
解决办法
1万
查看次数

将 tidyverse %&gt;% 管道与日期和 format() 一起使用;如何防止官样文章字符?

我有一个小标题,其中有一列格式为日期。出于问题的目的,我将生成类似的数据(真实数据要大得多!):

> dates = tribble(~YrMon, "2011-01-01", "2011-02-01", "2011-03-01", "2011-04-01") 
              %>% mutate(YrMon = as.Date(YrMon))
> dates
# A tibble: 4 x 1
  YrMon     
  <date>    
1 2011-01-01
2 2011-02-01
3 2011-03-01
4 2011-04-01
Run Code Online (Sandbox Code Playgroud)

我只想隔离几个月。当我在不使用管道的情况下提取月份时,它按预期工作:

> format(dates$YrMon, "%m")
[1] "01" "02" "03" "04"

Run Code Online (Sandbox Code Playgroud)

然而,当我使用 tidyverse 管道做我认为应该是相同的事情时,我得到了 gobbledygook (我认为这是返回的 tibble 的某种格式):

> dates %>% format(.$YrMon, "%m")
[1] "\033[38;5;246m# A tibble: 4 x 1\033[39m"          
[2] "  YrMon     "                                     
[3] "  \033[3m\033[38;5;246m<date>\033[39m\033[23m    "
[4] "\033[38;5;250m1\033[39m 2011-01-01"               
[5] "\033[38;5;250m2\033[39m 2011-02-01"               
[6] "\033[38;5;250m3\033[39m 2011-03-01"               
[7] "\033[38;5;250m4\033[39m 2011-04-01"
Run Code Online (Sandbox Code Playgroud)

发生了什么事,有没有办法使用 …

r pipe tidyverse

3
推荐指数
1
解决办法
946
查看次数

标签 统计

group-by ×1

pandas ×1

pipe ×1

python ×1

r ×1

tidyverse ×1