索引并搜索pandas数据帧中的列表列表

时间:2017-06-06 03:21:09

标签: python list dataframe

假设我们有一个这样的列表列表:

lst = [[[[1,2]]],[[[2,3]]],[[[3,4]]]]

然后我们在这里制作一个熊猫数据框:

import pandas as pd
import numpy as np
df = pd.DataFrame(lst, columns = ['col'])
print df

并返回

        col
0  [[1, 2]]
1  [[2, 3]]
2  [[3, 4]]

当内部列表包含col时,我想要用green替换1,如果没有,则red。{}我试过这个:

df['col'] = np.where(1 in df['col'], 'green', 'red')
print df

但没有回复正确答案!!!

     col
0  green
1  green
2  green

我认为问题在于数据框的每个元素都是一个列表列表。

1 个答案:

答案 0 :(得分:1)

您可以使用str[0]方法;您还有一个列表列表,您可以使用x提取第一个元素(列表类型),也可以从apply df['col'].str[0].apply(lambda x: 'green' if 1 in x else 'red') #0 green #1 red #2 red #Name: col, dtype: object 中提取它:

df['col'].apply(lambda x: 'green' if 1 in x[0] else 'red')

#0    green
#1      red
#2      red
#Name: col, dtype: object

另一种选择:

{{1}}