将函数应用于数据帧的每一行

时间:2018-05-19 02:15:04

标签: python pandas apply

下面实施的更优雅的方式是什么?

我想将函数my_function应用于数据框,其中数据框的每一行都包含函数的参数。然后我想将函数的输出写回数据帧行。

results = pd.DataFrame()
for row in input_panel.iterrows():
    (index, row_contents) = row
    row_contents['target']  = my_function(*list(row_contents))
    results = pd.concat([results, row_contents])

1 个答案:

答案 0 :(得分:7)

我们将遍历这些值并在最后构建一个DataFrame。

results = pd.DataFrame([my_function(*x) for x in input_panel.values.tolist()])

推荐使用方法较少的是使用DataFrame.apply

results = input_panel.apply(lambda x: my_function(*x))

apply的唯一优势是减少输入。