繁体   English   中英

使用二维 numpy 数组中的索引对 Pandas 数据框进行有效子集

[英]Efficient subsetting of pandas dataframe with indexes in 2d numpy array

我有一个带有索引的 2d(将来可能是 3d)数组。 假设它看起来像这样:

[[1,1,1],
[1,2,2],
[2,2,3]]

我有一个熊猫数据框:

index, A, B
1, 0.1, 0.01
2, 0.2, 0.02
3, 0,3, 0.03

我想获得一个 numpy 数组(或 Pandas df),其中包含来自 A 列的值,基于 numpy 数组进行切片。 所以结果会在这里:

[[0.1,0.1,0.1],
[0.1,0.2,0.2],
[0.2,0.2,0.3]]

我可以用循环来获取熊猫数据框:

pd.DataFrame(df.A[val].values for val in array)

但是我正在寻找更有效的方法来做到这一点。 有没有更好的方法可以让我一次使用整个索引数组?

你可以做:

df.loc[a.ravel(),'A'].values.reshape(a.shape)

输出:

array([[0.1, 0.1, 0.1],
       [0.1, 0.2, 0.2],
       [0.2, 0.2, 0.3]])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM