无法将功能应用于熊猫数据框中的选定列

时间:2020-03-20 00:04:03

标签: python pandas

我有一个如下数据框:

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'])

enter image description here

我想将以下函数应用于数据框中的选定列:

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)

enter image description here

但是当我尝试应用其他函数“ item_exclude_all”时,该函数未应用到所选列。

df.apply(lambda x : item_exclude_all(x) if x.name in ['C', 'E'] else x)

我试图理解上面代码中的问题所在。

enter image description here

1 个答案:

答案 0 :(得分:1)

您必须在第一个Custom().setRoot().setAdded().build() 中使用.apply()。这是因为.apply()函数应应用于每一行,而不是整个Serie。

item_exclude_all()