以下是我的例子:
import pandas as pd
df = pd.DataFrame({'col_1':[1,23,4], 'col_2':[3,4,5]})
def test_funct(x, y):
return pd.DataFrame({'col_3':[8,9], 'col_4':[6,7]})
result = df.apply(lambda row: test_funct(row.col_1, row.col_2), axis = 1)
输出如下:
col_1 col_2
0 (c, o, l, _, 3) (c, o, l, _, 4)
1 (c, o, l, _, 3) (c, o, l, _, 4)
2 (c, o, l, _, 3) (c, o, l, _, 4)
这有些出乎意料,我想我会得到数据帧的系列/列表。
以下内容也无济于事:
result = df.astype(object).apply(lambda row: test_funct(row.col_1, row.col_2), axis = 1)
更新
这是更有趣的案例。以下函数生成尺寸错误:
import numpy as np
def test_funct(x, y):
return np.zeros(300)
以下内容有效:
import numpy as np
def test_funct(x, y):
return list(np.zeros(300))