【发布时间】:2016-01-26 21:06:35
【问题描述】:
我有一个大型数据框(数百万行 x 十几列),我想获取一些摘要数据。总体而言,如本例所示,我有多达 800,000 个可能的“名称”,以及多达 440 个样本中的 6 个可能值。
这是我拥有和想要的玩具示例:
起始表:
Name Chr Pos Sample Value
RS1 1 1000 S1 1
RS1 1 1000 S2 1
RS1 1 1000 S3 2
RS1 1 1000 S4 3
RS1 1 1000 S5 1
RS1 1 1000 S6 2
我想要名称列中每个项目的每个值的比例。在此示例中,有 6 个样本,具有 3 个可能的值。因此,我的输出将是:
Name Chr Pos Value Proportion
RS1 1 1000 1 0.5
RS1 1 1000 2 0.33
RS1 1 1000 3 0.17
我愿意在 R (dplyr?) 或 Python (使用 base 或 pandas??) 中执行此操作,如果有意义的话,甚至可以使用 bash 脚本。我正在寻找可以节省时间和内存的东西。我对 R 有一定的了解,但我刚开始学习 Python 和它所能做的一切。
【问题讨论】:
-
你在这之后吗:stackoverflow.com/questions/32122300/… 如果是这样,我将作为骗子关闭
-
对于那么大的事情,R 的
data.table,或者可能是 SQL。您可以使用dplyr轻松完成此操作,但对于该大小,它可能会很慢。 -
我认为熊猫的答案会起作用。我正在尝试。显然,我搜索了错误的术语。我担心 R 会阻塞这么多数据,或者速度非常慢,但如果我不能让 pandas 工作,我会看看。我无法将它导入数据库,因此我可以使用 SQL,但那将是理想的。
标签: python r bash pandas dplyr