pandas应用函数及其参数

19

我有一个需要三个参数的函数。下面是标题。

def count_ones(num, total_bits, group_size):

我正试图将此函数应用于数据列。但它返回的不是我预期的结果。有人能帮帮我解决这个问题吗?total_bits是60,group_size是12。

df['events'] = df['data'].apply(count_ones, args =(60, 12))

为什么不这样写:df['events'] = count_ones(df['data'], 60, 12)?顺便说一句,我希望你的函数能够处理向量... - MaxU - stand with Ukraine
1
但它没有返回我期望的结果。它返回了什么?你期望它返回什么? - DYZ
@MaxU 我的函数将接受二进制整数输入和两个参数。 - ejshin1
@DYZ 我期望 'events' 列会根据应用在 'data' 列上的 count_ones 函数进行填充。每行 'events' 列的预期值是一个由 5 个整数组成的数组。 - ejshin1
2个回答

39
将参数作为kwargs传递给apply:
df['events'] = df['data'].apply(count_ones, total_bits=60, group_size=12)

1

使用lambda:

def do_on_col(x, argument1):
  return x+argument1

df[col] = df[col].apply(lambda x: do_on_col(x, argument1))

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接