Pandas 查找包含列表的列
我有一个150000 x 330的大熊猫数据帧,我可以找到包含列表的列Pandas 查找包含列表的列,pandas,dataframe,Pandas,Dataframe,我有一个150000 x 330的大熊猫数据帧,我可以找到包含列表的列[] 我试过了 df['[]'在x中代表df.values中的x]] 但它只返回列名 df['FORM_SECTION.CONTRACT.FD_CONTRACT.CONTRACTING_AUTHORITY_INFORMATION.NAME_ADDRESSES_CONTACT_CONTRACT.SPECIFICATIONS_AND_ADDITIONAL_DOCUMENTS.CONTACT_DATA.E_MAILS.E_MAIL
[]
我试过了
df['[]'在x中代表df.values中的x]]
但它只返回列名
df['FORM_SECTION.CONTRACT.FD_CONTRACT.CONTRACTING_AUTHORITY_INFORMATION.NAME_ADDRESSES_CONTACT_CONTRACT.SPECIFICATIONS_AND_ADDITIONAL_DOCUMENTS.CONTACT_DATA.E_MAILS.E_MAIL']
0 [dsfd@inventura.no]
1 [---@sivingtt.no]
2 None
3 None
4 None
...
152463 None
152464 None
152465 None
152466 None
152467 None
Name: FORM_SECTION.CONTRACT.FD_CONTRACT.CONTRACTING_AUTHORITY_INFORMATION.NAME_ADDRESSES_CONTACT_CONTRACT.SPECIFICATIONS_AND_ADDITIONAL_DOCUMENTS.CONTACT_DATA.E_MAILS.E_MAIL, Length: 152468, dtype: object
您正在检查x中的字符串“[]”,而不是列表。尝试检查类型(x)==列表 我认为它看起来像(可能在语法上不完全正确):
考虑这个数据帧:
abc
0 1 1 1
1 2 2 []
2 [] 3 3
3 3 4 4
然后,要选择[]
所在的列,可以执行以下操作:
print(df.loc[:,df.apply(x.tolist()中的lambda x:[]))
印刷品:
ac
0 1 1
1 2 []
2 [] 3
3 3 4
您可以尝试:
df.applymap(lambda x: isinstance(x, list)).any()
演示
您还可以找到包含列表的列的列表,如下所示:
df.columns[df.applymap(lambda x: isinstance(x, list)).any()].tolist()
输出:
['Col2']
对于列表中的i_cols:print(i),这将打印每一列mpty DataFrame列:[]索引:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,90,91,92,93,94,95,96,97,98,99,][152468行x 0列]@BjørnJørgensen你能编辑你的问题并把数据放在那里吗?格式正确。嗯,这是一个由JSON制成的大数据框。我从arangodb.df.columns[df.applymap(lambda x:isinstance(x,list)).any()]中得到它。tolist()这段代码确实打印了那些有列表的列。df.columns[df.applymap(lambda x:isinstance(x,list))。any()]。tolist()确实给了我一个列表:)tnx@BjørnJørgensen很乐意帮忙!请记住:-)
df.columns[df.applymap(lambda x: isinstance(x, list)).any()].tolist()
['Col2']