首页 > 解决方案 > 我需要获取 pandas-dataframe 行,其中包括列中特定列表位置的特定值

问题描述

我有一个包含几列的数据框。此列的类型之一是列表:

import pandas as pd


df = pd.DataFrame({'col1': [[1, 2, 'x'], ['as', 3, 5, 7], [1, 2]],
                   'col2': ['barfoo', 'foo', 'bar']})
print(df)
            col1    col2
0      [1, 2, x]  barfoo
1  [as, 3, 5, 7]     foo
2         [1, 2]     bar 

所以我需要获取行,其中'col1'中的列表值等于2。

像这样的东西(它不起作用):

result = df.loc[df['col1'].list[1] == 2]

期望的输出:

            col1    col2
0      [1, 2, x]  barfoo
2         [1, 2]     bar 

标签: pythonpandasdataframe

解决方案


你可以这样做:

df.loc[df.col1.str[1] == 2]

推荐阅读