2017-06-06 40 views
0

讓我們說我們有這樣一個列表的列表:索引和搜索的熊貓數據幀中的目錄列表

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當內部列表包括1red,如果沒有。我試過這個:

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

但是沒有返回正確答案!!!

 col 
0 green 
1 green 
2 green 

我認爲問題是數據框的每個元素都是列表的列表。

回答

1

您可以使用apply方法;你也有名單的名單列表,您可以使用str[0]提取(列表類型)的第一個元素或者您也可以從xapply解壓:

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