根据包含必须过滤的索引的另一个列表拆分列表

时间:2017-07-05 09:22:33

标签: python list pandas numpy indexing

问题如下:

我列出了91个有序值,每个值代表2个可能的试验之一:Pumpindex

我有另一个列表(实际上是一个pandas df),它有2列,一列叫做Left,另一列叫做Right。这些列包含第一个列表中左右试验的顺序。 (即列左:0,1,3,4,6,8 ...... //列右:2,5,7,9 ....)

我接下来要做的是,如果索引#位于左列或右列列表中,则根据索引拆分第一个列表。

这是我提出的最简单的解决方案,但是它不起作用,只过滤掉前46个左试验而不管第二个列表中的数字。它只看到有46个左侧试验并从第一个列表中进行了前46个试验。

 df1 = pd.read_csv("LeftRightrat1.csv")
 df1.columns = ['Left', 'Right']
 Pumpindex = [somelist]
 Leftypump = [x for x in Pumpindex if Pumpindex.index(x) in df1['Left']]

我认为我在这里做的是:如果在df1 ['Left']系列中找到x的索引,则将x添加到列表中。因此,如果数字0,1,3,4,6,8在df1 [left]中,那么我的列表将仅选择Pumpindex中被索引为0,1,3,4,6,8的值。不幸的是它只给了我0,1,2,3,4,5 ......

我哪里出错了?

1 个答案:

答案 0 :(得分:1)

如果数据框包含拆分的索引,为什么不尝试

left = [Pumpindex[x] for x in df1.Left]
right = [Pumpindex[x] for x in df1.Right]