首页 > 解决方案 > 如何从数据框中获取以特定值开头的列列表?

问题描述

我有 df 有不同的列,其中一些包含列表,我想获取所有包含列表的列,所以我只能在它们上运行函数。

东风:

Name      Test_Column1        Test_Column2           Test_Column3
A         ['a', 'b']           Test                   ['b']

所以理想情况下,我想获取列列表 ['Test_Column1','Test_Column3']

标签: pythonpandasdataframere

解决方案


这不干净,但您可以执行以下操作:

pd.DataFrame({"listcol":[[1, 2], [2, 3]], "normalcol":[1, 2]})
for col in df:
    if all(df.loc[:,col].apply(lambda x: isinstance(x, list))):
        print("all values in", col, "are of type list!")

而不是打印,然后您可以保存它们。这仅在列中的所有元素都是列表类型时才有效。你可以把它换出来any()或你自己的支票。我确信有一种更简洁的方法可以在不需要循环的列中应用它,但它让我无法理解。


推荐阅读