Pandas适用 - 返回数据帧

时间:2017-11-06 17:37:22

标签: pandas dataframe apply

以下是我的例子:

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))

0 个答案:

没有答案