我知道,将函数作为组键传递时,在每个索引值中调用函数一次,返回值用作组名。我不知道的是如何对列值调用函数。
所以我可以这样做:
people = pd.DataFrame(np.random.randn(5, 5),
columns=['a', 'b', 'c', 'd', 'e'],
index=['Joe', 'Steve', 'Wes', 'Jim', 'Travis'])
def GroupFunc(x):
if len(x) > 3:
return 'Group1'
else:
return 'Group2'
people.groupby(GroupFunc).sum()
这会将数据分成两组,其中一组的索引值为3或更少,另一组的索引值为3或更多。但是如何传递列值之一?例如,如果每个索引点的d列值大于1。我意识到我可以做到以下几点:
people.groupby(people.a > 1).sum()
但我想知道如何在用户定义的函数中执行此操作,以供将来参考。
类似于:
def GroupColFunc(x):
if x > 1:
return 'Group1'
else:
return 'Group2'
但我该怎么称呼它呢? 我试过了
people.groupby(GroupColFunc(people.a))
以及类似的变体,但这不起作用。
如何将列值传递给函数? 如何传递多个列值(例如,传递给是否分组people.a>;people.b)?
要按>;1分组,可以定义如下函数:
那就叫它像
或者只能使用匿名函数:
如documentation中所述,还可以通过传递提供标签的序列来分组->;组名映射:
相关问题 更多 >
编程相关推荐