我有一个包含10列的数据框,收集"用户"的操作,其中一列包含ID(不唯一,标识用户)(第10列).数据帧的长度约为750000行.我试图提取由包含"用户"标识符的列分割的单个数据帧(因此得到数据帧的列表或向量),以隔离单个actor的动作.
ID | Data1 | Data2 | ... | UserID
1 | aaa | bbb | ... | u_001
2 | aab | bb2 | ... | u_001
3 | aac | bb3 | ... | u_001
4 | aad | bb4 | ... | u_002
Run Code Online (Sandbox Code Playgroud)
结果
list(
ID | Data1 | Data2 | ... | UserID
1 | aaa | bbb | ... | u_001
2 | aab | bb2 | ... | u_001
3 | aac | bb3 …Run Code Online (Sandbox Code Playgroud) 我有一个split()在R 中窒息的大型数据集.我能够使用dplyrgroup_by(无论如何这是一种首选方式)但是我无法将结果保存grouped_df为数据帧列表,这是我连续处理步骤所需的格式(我需要强迫SpatialDataFrames和类似的).
考虑一个样本数据集:
df = as.data.frame(cbind(c("a","a","b","b","c"),c(1,2,3,4,5), c(2,3,4,2,2)))
listDf = split(df,df$V1)
Run Code Online (Sandbox Code Playgroud)
回报
$a
V1 V2 V3
1 a 1 2
2 a 2 3
$b
V1 V2 V3
3 b 3 4
4 b 4 2
$c
V1 V2 V3
5 c 5 2
Run Code Online (Sandbox Code Playgroud)
我想用group_by(类似的东西group_by(df,V1))来模仿这个,但这会返回一个,grouped_df.我知道do应该可以帮助我,但我不确定使用情况(另见讨论链接.)
请注意,每个列表的拆分名称都是用于建立此组的因子的名称 - 这是一个所需的功能(最终,这是从dfs列表中提取这些名称的方法的奖励).
我有一个 ggplot stat_bin2d“热图”。
library(ggplot2)
value<-rep(1:5, 1000)
df<-as.data.frame(value)
df$group<-rep(1:7, len=5000)
df<-df[sample(nrow(df), 3000), ]
ggplot(df, aes(factor(group), factor(value))) +stat_bin2d()
Run Code Online (Sandbox Code Playgroud)
我尝试向 aes 添加填充:
aes(factor(group), factor(value),fill = (..count..)/mean(..count..))
Run Code Online (Sandbox Code Playgroud)
作为模仿..密度..(不接受)的一种方式似乎不被接受,但这不是我想要的 - 它似乎除以整个 df 的计数总和。我希望每组中的值计数(按 x 轴)按组内的平均值(或总和或其他统计数据)进行归一化。不幸的是, sum(..count..) 似乎给出了整个 df 的总和,而不仅仅是列的总和。
为了使用 Python 高效地分析空间数据,我使用了 rtree 空间索引库,依赖于 libspatialindex C 库。
我能够使用!pip install rtree.
正如预期的那样,这还不够,因为需要首先安装 libspatialindex,import rtree结果证实:
OSError: Could not find libspatialindex_c library file
我不确定是否以及如何在 Google Collaboratory 中安装外部库。遵循https://github.com/libspatialindex/libspatialindex/wiki/1.-Getting-Started我设法运行,!curl -L http://download.osgeo.org/libspatialindex/spatialindex-src-1.8.5.tar.gz | tar xz但我没有配置权限:
!spatialindex-src-1.8.5/configure
/bin/sh: 1: spatialindex-src-1.8.5/configure: Permission denied