我有一个包含多个列的数据帧。此列的一种类型是list:
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
发布于 2020-08-13 11:39:24
你可以这样做:
df.loc[df.col1.str[1] == 2]
https://stackoverflow.com/questions/63394280
复制