R-dcast的等价物

2024-09-28 21:22:58 发布

您现在位置:Python中文网/ 问答频道 /正文

抱歉,我是R新手。我正在寻找使用pandas在python中进行R dcast。原始R代码如下所示:

dcast(wide_data, date+hour~lat+lon+level,value.var=c("Speed",'Speed2','Speed3', "Angle"))

我尝试了以下功能:

wide_data.pivot_table(index=['date', 'hour'], columns=['lat', 'lon', 'level'], aggfunc='mean', values=["Speed",'Speed2','Speed3', "Angle"]).reset_index()

但是,这会返回与R代码不匹配的值,尽管输出的形状相同。无论我使用aggfunc作为“平均值”还是“总和”,它都会给我相同的值

这是R的一个示例输出 enter image description here

这是python的一个示例输出 enter image description here

两个输出的形状均为30137 x 2258

R中的数据:

structure(list(date = structure(c(17167L, 17167L, 17167L), class = c("IDate", "Date")), 
hour = c(6L, 6L, 6L), lat = c(39, 39, 39), lon = c(27.25, 27.25, 27.25), 
level = c("0.995 sigma level", "10 m above ground", "100 m above ground"),
Speed = c(3.40587727318528, 2.50491516822427, 4.26085672136485), 
Angle = c(56.4965630175858, 57.3884631533085, 55.2283047278042), 
Speed2 = c(11.6, 6.2746, 18.1549), Speed3 = c(39.5081763689492, 15.71734071454, 77.3554276907067)),
row.names = c(NA, -3L), class = c("data.table", "data.frame"),
sorted = c("date", "hour", "lat", "lon", "level" )) 

Tags: 代码datadateindextablelevelspeedlon