python pandas 函数返回多个值并将它们放入列中

标签 python pandas function return-value

我有两个功能,如下所示。第二个有效,但第一个无效。为什么?

import pandas as pd

df = pd.DataFrame(data = {'a': [1, 2, 3], 'b': [4, 5, 6]})

def add_subtract_list(a, b):
  return [1,2,3,4]
add_subtract_list(5,8)

df[['c','d','x','y']] = df.apply(
    lambda row: add_subtract_list(row['a'], row['b']), axis=1)

以下功能有效。来自this页面

import pandas as pd

df = pd.DataFrame(data = {'a': [1, 2, 3], 'b': [4, 5, 6]})



def add_subtract_list(a, b):
  return [a + b, a - b]

df[['sum', 'difference']] = df.apply(
    lambda row: add_subtract_list(row['a'], row['b']), axis=1)

最佳答案

更新您的函数,使其返回 pandas 系列而不是 python 列表。

def add_subtract_list(a, b):
  return pd.Series([1,2,3,4])

关于python pandas 函数返回多个值并将它们放入列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50010434/

相关文章:

python - 在 Python 中仅从 CSV 文件中获取一列

python - 脚本不会切换到另一个用户

python - 来自具有列名称的列的 Pandas 系列

c - 将指向堆栈分配数组的指针传递给函数

javascript - 基本 Javascript/jQuery 数学游戏 : Why can't I evaluate the second time I run this function?

python - 如何找到 python3 字节对象的编码

python - django 表单单选输入布局

python - 如何删除值频率小于 5 的行? python , Pandas

python - pandas.unique() 的奇怪内存消耗

c++ - &-运算符/C++,解释