我想按多列对data.frame进行排序.例如,对于下面的data.frame,我想按列z(降序)然后按列b(升序)排序:
dd <- data.frame(b = factor(c("Hi", "Med", "Hi", "Low"),
levels = c("Low", "Med", "Hi"), ordered = TRUE),
x = c("A", "D", "A", "C"), y = c(8, 3, 9, 9),
z = c(1, 1, 1, 2))
dd
b x y z
1 Hi A 8 1
2 Med D 3 1
3 Hi A 9 1
4 Low C 9 2
Run Code Online (Sandbox Code Playgroud) 我在具有64 GB RAM的Windows 64位计算机上运行模拟.内存使用率达到55%,在完成模拟运行后,我删除了工作空间中的所有对象,然后是a .rm(list=ls())double gc()
我认为这会为下一次模拟运行释放足够的内存,但实际内存使用率仅下降1%.咨询了很多不同的论坛我找不到令人满意的解释,只有模糊的评论如:
"根据您的操作系统,释放的内存可能不会返回到操作系统,而是保留在进程空间中."
我想找到以下信息:
我正在尝试按两列对数据进行排序。其中之一是绝对值。按两列http://pandas.pydata.org/pandas-docs/version/0.17/ generated/pandas.DataFrame.sort_values.html 和按绝对值对值进行排序很容易 按绝对值排序按一列的绝对值排序,但我无法合并这两种方法。
例如,我有df已经按 abs 'dist' 排序,然后我想通过 'take' 在内部对其进行排序
In[4]:df
Out[4]:
q_id dist taking
0 406 6.0 0.17
1 448 6.0 0.46
2 449 6.0 0.42
3 208 -6.0 0.25
4 244 -7.0 0.12
5 203 7.0 0.40
6 614 8.0 0.50
7 243 -8.0 0.40
Run Code Online (Sandbox Code Playgroud)
它可能看起来像这样
df_sorted
Out[]:
q_id dist taking
1 448 6.0 0.46
2 449 6.0 0.42
3 208 -6.0 0.25
0 406 6.0 0.17
4 244 -7.0 0.12
5 203 …Run Code Online (Sandbox Code Playgroud)