gpt4 book ai didi

python - 如何将 Pandas DataFrame 的列和行子集转换为 numpy 数组?

转载 作者:IT老高 更新时间:2023-10-28 21:32:28 25 4
gpt4 key购买 nike

我想知道是否有一种更简单、内存高效的方法可以从 pandas DataFrame 中选择行和列的子集。

例如,给定这个数据框:

df = DataFrame(np.random.rand(4,5), columns = list('abcde'))print df          a         b         c         d         e0  0.945686  0.000710  0.909158  0.892892  0.3266701  0.919359  0.667057  0.462478  0.008204  0.4730962  0.976163  0.621712  0.208423  0.980471  0.0483343  0.459039  0.788318  0.309892  0.100539  0.753992

我只想要那些列“c”的值大于 0.5 的行,但我只需要这些行的列“b”和“e”。

这是我想出的方法——也许有更好的“ Pandas ”方法?

locs = [df.columns.get_loc(_) for _ in ['a', 'd']]print df[df.c > 0.5][locs]          a         d0  0.945686  0.892892

我的最终目标是将结果转换为 numpy 数组以传递给 sklearn 回归算法,因此我将像这样使用上面的代码:

training_set = array(df[df.c > 0.5][locs])

... 这让我很恼火,因为我最终在内存中得到了一个巨大的数组副本。也许还有更好的方法?

最佳答案

直接使用它的值:

In [79]: df[df.c > 0.5][['b', 'e']].values
Out[79]:
array([[ 0.98836259, 0.82403141],
[ 0.337358 , 0.02054435],
[ 0.29271728, 0.37813099],
[ 0.70033513, 0.69919695]])

关于python - 如何将 Pandas DataFrame 的列和行子集转换为 numpy 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17682613/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com