当我在dplyr中使用group_by和summary时,我可以自然地将不同的汇总函数应用于不同的变量.例如:
library(tidyverse)
df <- tribble(
~category, ~x, ~y, ~z,
#----------------------
'a', 4, 6, 8,
'a', 7, 3, 0,
'a', 7, 9, 0,
'b', 2, 8, 8,
'b', 5, 1, 8,
'b', 8, 0, 1,
'c', 2, 1, 1,
'c', 3, 8, 0,
'c', 1, 9, 1
)
df %>% group_by(category) %>% summarize(
x=mean(x),
y=median(y),
z=first(z)
)
Run Code Online (Sandbox Code Playgroud)
结果输出:
# A tibble: 3 x 4
category x y z
<chr> <dbl> <dbl> <dbl>
1 a 6 6 8
2 b 5 1 …Run Code Online (Sandbox Code Playgroud) 我有一个有趣的问题,我想知道是否有一种简洁,pythonic(pandastic?)方式来做到这一点,而不是迭代数据帧的行.
使用一个字段来获取DataFrame,该字段是信息的json编码:
Name Data
0 Joe '[{"label":"a","value":"1"},{"label":"b","value":"2"}]'
1 Sue '[{"label":"a","value":"3"},{"label":"c","value":"4"}]'
2 Bob '[{"label":"b","value":"4"},{"label":"d","value":"1"}]'
Run Code Online (Sandbox Code Playgroud)
我想将json字段扩展为数据字段,并将不同的列标题联合起来,以获得:
Name Data a b c d
0 Joe '[{"label":"a"... 1 2
1 Sue '[{"label":"a"... 3 4
2 Bob '[{"label":"b"... 4 1
Run Code Online (Sandbox Code Playgroud)
空白缺少值.我知道我可以使用read_json从json字段创建数据帧,但后来我想将这些数据帧重新展平为原始数据集的额外列.
那么,有没有一种优雅的方法可以在不迭代数据框的各行的情况下执行此操作?任何帮助,将不胜感激.