首页 > 解决方案 > 带有数组的熊猫数据框中的 Selectig 条目

问题描述

我有一个建立在具有多个属性的对象上的熊猫数据框。让我们称之为data1。data1 有一个数组 x ,它将数据框中的每个条目与一组值和数组 y 和 z 相关联,它们的作用相同。我的代码如下所示。

x = (3, 5, 2, 8, 9)
y = (4, 9, 0, 2, 1)
z = (0, 3, 6, 0, 2)

cols = ['x', 'y', 'z']
data1.loc[:5, cols]

这将返回一个包含 x、y 和 z 列的表。表中的条目对应于上面的数组。我需要做的是使用另一个数组来选择表中的相应条目。例如,假设数组是

idx = [1, 4, 5] 

我需要返回一个与上面给出的完全相同的表,但只包含 idx 数组中的条目。我努力了:

cols = ['x', 'y', 'z']
data1.loc[idx, cols]

这将返回一个与前一个表相同的表,但现在所有条目都分散了。如果代码应仅返回对应于 (1,4,5) 的条目,则返回 (1,4,5,2,3)。

标签: linuxpython-3.xpandasdataframe

解决方案


像这样的东西(记住索引从 0 开始):

import pandas as pd
x = (3, 5, 2, 8, 9)
y = (4, 9, 0, 2, 1)
z = (0, 3, 6, 0, 2)

df = pd.DataFrame()
df['x'] = x
df['y'] = y
df['z'] = z
print(df);print()

idx = [1, 4, 2] 
cols = ['x', 'y', 'z']
print(df.loc[idx, cols])

   x  y  z
1  5  9  3
4  9  1  2
2  2  0  6

推荐阅读