问题描述
apply
使用一个函数将其应用于 每个 值(而不是序列),并接受kwargs。因此,值没有.size()
方法。
也许这会工作:
from pandas import *
d = {"my_label": Series(['A','B','A','C','D','D','E'])}
df = DataFrame(d)
def as_perc(value, total):
return value/float(total)
def get_count(values):
return len(values)
grouped_count = df.groupby("my_label").my_label.agg(get_count)
data = grouped_count.apply(as_perc, total=df.my_label.count())
.agg()
这里的方法采用一个函数,该函数应用于groupby对象的 所有
值。
解决方法
我有一个pandas数据框,my_labels
其中包含一个名为string的列'A','B','C','D','E'
。我想计算每个字符串的出现次数,然后将计数的数量除以所有计数的总和。我正在像这样在Pandas中尝试这样做:
func = lambda x: x.size() / x.sum()
data = frame.groupby('my_labels').apply(func)
此代码引发错误,“ DataFrame对象没有属性” size”。如何在Pandas中应用函数进行计算?