我有这样的数据帧:
sample_df<-data.frame(
client=c('John', 'John','Mary','Mary'),
date=c('2016-07-13','2016-07-13','2016-07-13','2016-07-13'),
cluster=c('A','B','A','A'))
#sample data frame
client date cluster
1 John 2016-07-13 A
2 John 2016-07-13 B
3 Mary 2016-07-13 A
4 Mary 2016-07-13 A
Run Code Online (Sandbox Code Playgroud)
我想将其转换为不同的格式,如下所示:
#ideal data frame
client date cluster
1 John 2016-07-13 c('A,'B')
2 Mary 2016-07-13 A
Run Code Online (Sandbox Code Playgroud)
对于"群集"列,如果某个客户端在同一日期属于不同的群集,则它将是一个列表.
我认为我可以用dplyr包来做,如下所述
library(dplyr)
ideal_df<-sample %>%
group_by(client, date) %>%
summarize( #some anonymous function)
Run Code Online (Sandbox Code Playgroud)
但是,我不知道在这种情况下如何编写匿名函数.有没有办法将数据转换为理想格式?
我想使用 pytest 对另一个名为src. 这是我的目录结构:
src
__init__.py
script1.py
script2.py
test
test_fun.py
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试通过命令行在文件夹中运行pytest时test,看到以下错误
from script2 import fun2
E ModuleNotFoundError: No module named 'script2'
在每个脚本中,我有以下内容
脚本2.py:
def fun2():
return('result_from_2')
Run Code Online (Sandbox Code Playgroud)
脚本1.py:
from script2 import fun2
def fun1():
return(fun2()+'_plus_something')
Run Code Online (Sandbox Code Playgroud)
test_fun.py :
import sys
sys.path.append('../')
from src.script1 import fun1
def test_fun1():
output1 = fun1()
# check output
assert output1=='result_from_2_plus_something'
Run Code Online (Sandbox Code Playgroud)
如何使用上面提供的目录运行 pytest?
我有一个购物车数据,看起来像下面的示例数据框:
sample_df<-data.frame(
clientid=1:10,
ProductA=c("chair","table","plate","plate","table","chair","table","plate","chair","chair"),
QuantityA=c(1,2,1,1,1,1,2,3,1,2),
ProductB=c("table","doll","shoes","","door","","computer","computer","","plate"),
QuantityB=c(3,1,2,"",2,"",1,1,"",1)
)
#sample data frame
clientid ProductA QuantityA ProductB QuantityB
1 1 chair 1 table 3
2 2 table 2 doll 1
3 3 plate 1 shoes 2
4 4 plate 1
...
10 10 chair 2 plate 1
Run Code Online (Sandbox Code Playgroud)
我想将其转换为不同的格式,如下所示:
#ideal data frame
clientid ProductNumber Product Quantity
1 1 A chair 1
2 1 B table 3
3 2 A table 2
4 2 B doll 1
...
11 6 A chair 1
... …Run Code Online (Sandbox Code Playgroud)