假设我们有一个这样的列表列表:
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
我认为问题在于数据框的每个元素都是一个列表列表。
答案 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}}