下面实施的更优雅的方式是什么?
我想将函数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])
答案 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
的唯一优势是减少输入。