在熊猫中应用功能

时间:2020-10-27 14:17:10

标签: python pandas apply

当我运行以下内容

extern

我收到以下错误

import pandas as pd


def my_func(E, I):

    return E * I


d = {'E': [1, 1], 'I': [2, 2]}
df = pd.DataFrame(data=d)
df['S'] = df.apply(lambda x: my_func(x['E'], x['I']),axis=1).map(lambda x: x[0]) 

由于我已经广泛使用它,所以我100%确信这在过去是可行的。 有人知道为什么会这样吗?

1 个答案:

答案 0 :(得分:0)

只需将最后一张地图放在最后。该函数正在返回列表,而您的最后一个map函数正在尝试获取列表的第一个元素。

import pandas as pd

def my_func(E, I):
    return E * I

d = {'E': [1, 1], 'I': [2, 2]}
df = pd.DataFrame(data=d)
df['S'] = df.apply(lambda x: my_func(x['E'], x['I']),axis=1)

或者,但是根据此处的注释,您可以将my_func中的值作为列表返回:

import pandas as pd

def my_func(E, I):
    return [E * I]

d = {'E': [1, 1], 'I': [2, 2]}
df = pd.DataFrame(data=d)
df['S'] = df.apply(lambda x: my_func(x['E'], x['I']),axis=1).map(lambda x: x[0])