Python 当列包含列表列表时,按列中的值筛选DataFrame

Python 当列包含列表列表时,按列中的值筛选DataFrame,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个与此类似的问题,但在我的例子中,包含我需要检查以提取dataframe中的行的值的列包含一个列表列表,而不是一个数值 我的数据如下所示: import pandas as pd data = { 'A' : [1, 2, 3, 4, 5], 'B' : [[[1, 2], [3, 4]], [[0, 2], [5, 6]], [[1, 3], [7, 8]], [[0, 4], [9, 10]], [[1, 5], [11, 12]]] } dataF = pd.Da

我有一个与此类似的问题,但在我的例子中,包含我需要检查以提取dataframe中的行的值的列包含一个列表列表,而不是一个数值

我的数据如下所示:

import pandas as pd 

data = {
    'A' : [1, 2, 3, 4, 5],
    'B' : [[[1, 2], [3, 4]], [[0, 2], [5, 6]], [[1, 3], [7, 8]], [[0, 4], [9, 10]], [[1, 5], [11, 12]]]
}
dataF = pd.DataFrame(data)
print(dataF)
我需要根据
B
中每行第一个列表的第一个元素的值来提取数据帧中的行。此值将始终为0或1

解决此问题后,我将有一个数据帧,如下所示:

import pandas as pd 

data = {
    'A' : [1, 2, 3, 4, 5],
    'B' : [[[1, 2], [3, 4]], [[0, 2], [5, 6]], [[1, 3], [7, 8]], [[0, 4], [9, 10]], [[1, 5], [11, 12]]],
    'C' : [[[0, 2], [3, 4]], [[1, 2], [5, 6]], [[0, 3], [7, 8]], [[0, 4], [9, 10]], [[1, 5], [11, 12]]]
}
dataF = pd.DataFrame(data)
print(dataF)
从这个数据帧中,我需要获取
B
C
中第一个列表的第一个元素为1的所有行。这意味着行
0、1、2、4

根据WeNYoBen的答案编辑:

要从
B
C
中第一个列表的第一个元素为1的数据帧中提取所有行,我使用下面的代码。但是,这种解决问题的方法需要检查extDF中的重复行,并按一列中的值对extDF进行排序。我想有一种方法不需要这两个步骤

import pandas as pd 

data = {
    'A' : [1, 2, 3, 4, 5],
    'B' : [[[1, 2], [3, 4]], [[0, 2], [5, 6]], [[1, 3], [7, 8]], [[0, 4], [9, 10]], [[1, 5], [11, 12]]],
    'C' : [[[0, 2], [3, 4]], [[1, 2], [5, 6]], [[0, 3], [7, 8]], [[0, 4], [9, 10]], [[1, 5], [11, 12]]]
}
dataF = pd.DataFrame(data)


extDF = pd.DataFrame(columns=['A', 'B', 'C'])

for i in [1, 2]:
    tempDF = dataF[dataF.iloc[:,i].str[0].str[0].isin([1])].copy()
    extDF = extDF.append(tempDF)

extDF.drop_duplicates(keep='first', inplace=True, subset='A')
extDF.sort_values(by='A', inplace=True)
extDF.reset_index(drop=True, inplace=True)

print(extDF)

根据你所描述的

Newdf=dataF[dataF.B.str[0].str[0].isin([0,1])].copy()

您需要过滤数据帧吗?这是什么意思?如何过滤?和以前一样的值?在什么之前,在哪里?被单词filter弄糊涂了这是我需要的一个专栏。你知道如何像问题的第二部分那样将其扩展到多个专栏吗?