我有一个如下数据框:
df = pd.DataFrame(data=[[[1,0],[1,1,1,1,1,1,1,1,1,1],[1,0,0,1,1,0,0,1,1],[2,3],[1,1,1,2,2,2,3,3,3,1,1,1]]], columns=['A', 'B', 'C', 'D', 'E'])
我想将以下函数应用于数据框中的选定列:
def item_exclude_all(list1):
from itertools import groupby
out = [i[0] for i in groupby(list1)]
return out
def fl(x):
new = []
for i in x:
new.append([i[0], i[-1]])
return new
我通过应用“ fl”功能执行了以下操作,该功能可以正常工作:
df.apply(lambda x : fl(x) if x.name in ['C', 'E'] else x)
但是当我尝试应用其他函数“ item_exclude_all”时,该函数未应用到所选列。
df.apply(lambda x : item_exclude_all(x) if x.name in ['C', 'E'] else x)
我试图理解上面代码中的问题所在。
答案 0 :(得分:1)
您必须在第一个Custom().setRoot().setAdded().build()
中使用.apply()
。这是因为.apply()
函数应应用于每一行,而不是整个Serie。
item_exclude_all()