In [47]: df = pd.DataFrame({'listColumn': ['a', 123, list('abcde')]})
In [48]: repl_dict = {'a':1, 'b':2, 'd':7, 'f':8 }
In [49]: df['listColumn'].apply(lambda x: [repl_dict[v] for v in x if v in repl_dict] if isinstance(x, list) else x)
Out[49]:
0 a
1 123
2 [1, 2, 7]
Name: listColumn, dtype: object
# apply lambda on 1 column (axis = 0)
d = {'col1':[ 'a', 'b', 'c', 'd', 'e']}
df = pd.DataFrame(data=d)
columnDictionary ={'a':1, 'b':2, 'd':7, 'f':8 }
df['col1'] = df['col1'].apply(lambda x: [columnDictionary[x] if x in columnDictionary else ''])
df
方法2:对行(轴=1)应用lambda,逐行(我认为比较慢)
d = {'col1':[ 'a', 'b', 'c', 'd', 'e']}
df = pd.DataFrame(data=d)
columnDictionary ={'a':1, 'b':2, 'd':7, 'f':8 }
df['listColumn'] = df.apply(lambda x: [columnDictionary[i] if i in columnDictionary else '' for i in x],axis=1)
df
结果:
col1 listColumn
0 a [1]
1 b [2]
2 c []
3 d [7]
4 e []
使用简单条件检查列表值是否在目标dict keys list中:
在lamdba函数中使用“if else”:
方法1:在列上应用lambda,在下面仅在一列上应用lambda(轴=0)
方法2:对行(轴=1)应用lambda,逐行(我认为比较慢)
结果:
有一个内置函数来检查某个东西是否是list,它叫做isinstance(mydata,list)它将分别返回True或False。你知道吗
相关问题 更多 >
编程相关推荐