小编And*_*egg的帖子

如何有效地迭代Pandas数据帧的连续块

我有一个大型数据帧(几百万行).

我希望能够对它进行groupby操作,但只需按任意连续(最好是相等大小)的行子集进行分组,而不是使用各行的任何特定属性来决定它们去哪个组.

用例:我想通过IPython中的并行映射将函数应用于每一行.哪个行转到哪个后端引擎并不重要,因为该函数一次基于一行计算结果.(从概念上讲,至少;实际上它是矢量化的.)

我想出了这样的事情:

# Generate a number from 0-9 for each row, indicating which tenth of the DF it belongs to
max_idx = dataframe.index.max()
tenths = ((10 * dataframe.index) / (1 + max_idx)).astype(np.uint32)

# Use this value to perform a groupby, yielding 10 consecutive chunks
groups = [g[1] for g in dataframe.groupby(tenths)]

# Process chunks in parallel
results = dview.map_sync(my_function, groups)
Run Code Online (Sandbox Code Playgroud)

但这似乎很啰嗦,并不能保证大小相等.特别是如果索引是稀疏的或非整数的或其他什么.

有什么更好的方法吗?

谢谢!

python parallel-processing ipython pandas

42
推荐指数
6
解决办法
4万
查看次数

Eclipse不会相信我有Maven 2.2.1

我有一个项目(从AppFuse模板构建),需要Maven 2.2.1.所以我升级到这个(从2.1.0开始)并设置我的路径和我的M2_HOMEMAVEN_HOMEenv变量.

然后我运行mvn eclipse:eclipse并将项目导入Eclipse(Galileo).

但是,在项目的问题列表中(以及在pom.xml GUI编辑器的顶部),它说:

无法建立项目"/export/people/clegg/data/Workspace/funcserve/pom.xml; 它需要Maven 2.2.1版

无论我是在Eclipse - > Maven - > Installations对话框中将Eclipse设置为使用其Embedded Maven实现还是外部2.2.1安装,这仍然存在.

我已经尝试关闭并重新打开项目,重新索引存储库,清理项目,重新启动IDE,注销并重新登录,我能想到的一切!但Eclipse仍然不相信我有Maven 2.2.1.

我刚刚做了一个插件更新,所以我有最新版本的Maven Integration for Eclipse - 0.9.8.200905041414.

有谁知道如何说服Eclipse我真的拥有合适的Maven版本?这就像它在其他地方记录了以前的版本,并不会关注我的变化:-(

java eclipse maven-2

9
推荐指数
1
解决办法
1万
查看次数

标签 统计

eclipse ×1

ipython ×1

java ×1

maven-2 ×1

pandas ×1

parallel-processing ×1

python ×1