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

Posted

技术标签:

【中文标题】根据包含必须过滤的索引的另一个列表拆分列表【英文标题】:Splitting a list based on another list that contains the indexes that must be filtered 【发布时间】: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...

我哪里做错了?

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

非常感谢您的快速回复!我只需要确保数据框中没有 nan 值!非常感谢!

以上是关于根据包含必须过滤的索引的另一个列表拆分列表的主要内容,如果未能解决你的问题,请参考以下文章

基于Python中的多个条件进行过滤

根据 Python 中的一组索引将列表拆分为多个部分

根据分隔符拆分列表

根据使用 Jexcel 选择的另一个下拉列表更改下拉列表值

SwiftUI:过滤的列表索引与新列表不对应

第2章聚集索引的表和索引