【发布时间】:2017-12-08 21:03:41
【问题描述】:
问题如下:
我有 91 个有序值的列表,每个值代表 2 个可能试验中的 1 个:Pumpindex
我有另一个列表(实际上是 pandas df),它有 2 列,一列称为左,另一列是右。这些列包含左右试验在第一个列表中的顺序。 (即左列:0,1,3,4,6,8... // 右列:2,5,7,9....)
接下来我要做的是根据第一个列表的索引拆分第一个列表,如果它的索引 # 位于左列列表或右列列表中。
这是我想出的最简单的解决方案,但可惜它不起作用,无论第二个列表中的数字如何,它都只会过滤掉前 46 个剩余试验。它只看到有 46 个 left 试验,并从第一个列表中取出前 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...
我哪里做错了?
【问题讨论】:
标签: python list pandas numpy indexing