小编tus*_*haR的帖子

向 Pandas DataFrame 添加新列导致 NaN

我有一个data包含以下交易数据的Pandas DataFrame :

           A         date
0      M000833  2016-08-01
1      M000833  2016-08-01
2      M000833  2016-08-02
3      M000833  2016-08-02 
4      M000511  2016-08-05
Run Code Online (Sandbox Code Playgroud)

我想要一个新列,其中包含每个消费者的访问次数(每天多次访问应视为 1)。

所以我试过这个:

import pandas as pd
data['noofvisits'] = data.groupby(['A'])['date'].nunique()
Run Code Online (Sandbox Code Playgroud)

当我只运行该语句而不将其分配给 DataFrame 时,我会得到一个具有所需输出的 ​​Pandas 系列。但是,上述语句导致:

           A         date       noofvisits
0      M000833  2016-08-01         NaN         
1      M000833  2016-08-01         NaN
2      M000833  2016-08-02         NaN
3      M000833  2016-08-02         NaN
4      M000511  2016-08-05         NaN
Run Code Online (Sandbox Code Playgroud)

预期的输出是:

           A         date       noofvisits
0      M000833  2016-08-01         2         
1      M000833  2016-08-01         2
2      M000833  2016-08-02         2
3      M000833  2016-08-02         2 …
Run Code Online (Sandbox Code Playgroud)

python pandas-groupby

5
推荐指数
1
解决办法
2625
查看次数

为 curl 请求构建等效的 R 请求

我有以下curl要求:

curl --request GET --header "key: value" http://urlhere
Run Code Online (Sandbox Code Playgroud)

如何在 R 中运行请求?

curl r rcurl httr

4
推荐指数
1
解决办法
2247
查看次数

使用 R 中的 apply 系列并行化用户定义的函数

我有一个计算时间太长的脚本,我正在尝试并行化其执行。

该脚本基本上循环遍历数据帧的每一行并执行一些计算,如下所示:

my.df = data.frame(id=1:9,value=11:19)

sumPrevious <- function(df,df.id){
    sum(df[df$id<=df.id,"value"])
}

for(i in 1:nrow(my.df)){
    print(sumPrevious(my.df,my.df[i,"id"]))
}
Run Code Online (Sandbox Code Playgroud)

我开始学习在 R 中并行化代码,这就是为什么我首先想了解如何使用类似 apply 的函数(例如 sapply、lapply、mapply)来做到这一点。

我尝试了多种方法,但到目前为止没有任何效果:

mapply(sumPrevious,my.df,my.df$id) # Error in df$id : $ operator is invalid for atomic vectors
Run Code Online (Sandbox Code Playgroud)

parallel-processing r lapply sapply mapply

4
推荐指数
1
解决办法
2244
查看次数

融化一个熊猫数据帧

我有一个pandas DataFrame这样的:

df = pd.DataFrame({'custid':[1,2,3,4],
...: 'prod1':['jeans','tshirt','jacket','tshirt'],
...: 'prod1_hnode1':[1,2,3,2],
...: 'prod1_hnode2':[6,7,8,7],
...: 'prod2':['tshirt','jeans','jacket','shirt'],
...: 'prod2_hnode1':[2,1,3,4],
...: 'prod2_hnode2':[7,6,8,7]})

In [54]: df
Out[54]: 
    custid   prod1  prod1_hnode1  prod1_hnode2   prod2  prod2_hnode1  \
0       1   jeans             1             6  tshirt             2   
1       2  tshirt             2             7   jeans             1   
2       3  jacket             3             8  jacket             3   
3       4  tshirt             2             7   shirt             4   

   prod2_hnode2  
0             7  
1             6  
2             8  
3             7  
Run Code Online (Sandbox Code Playgroud)

如何将其转换为以下格式:

dfnew = pd.DataFrame({'custid':[1,1,2,2,3,3,4,4],
...: 'prod':['prod1','prod2','prod1','prod2','prod1','prod2','prod1','prod2'],
...: 'rec':['jeans','tshirt','tshirt','jeans','jacket','jacket','tshirt','shirt'],
...: 'hnode1':[1,2,2,1,3,3,2,4],
...: 'hnode2':[6,7,7,6,8,8,7,7]})


In …
Run Code Online (Sandbox Code Playgroud)

python reshape melt pandas

4
推荐指数
1
解决办法
1322
查看次数

将R中的列表写入Excel文件

我有一个包含5个不同长度数据框的列表。我想将这些数据框写在同一张Excel工作表中。

我已经尝试使用WriteXLS()write.xlsx()但无法获得理想的结果。

excel file-io r

0
推荐指数
1
解决办法
909
查看次数

在R中绘制可变长度向量的列表

我有一个列表,其中包含各种长度的多个向量(总共80个).在x轴上我想要这些矢量的名称.在y轴上,我想绘制对应于每个向量的值.我怎么能在R?

plot r ggplot2

-1
推荐指数
1
解决办法
523
查看次数