【问题标题】:python pandas function return multiple values and put them into columnspython pandas函数返回多个值并将它们放入列中
【发布时间】:2018-04-24 20:41:44
【问题描述】:

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

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)

【问题讨论】:

    标签: python pandas function return-value


    【解决方案1】:

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

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

    【讨论】:

    • 知道为什么在返回 4 个元素时必须使用 pandas 系列吗?如果我要返回 2 个元素,则不需要熊猫系列!
    • 其实没有。我不知道pandas是怎么把这些值分成多列的。
    • 你能回答stackoverflow.com/questions/50011830/… - 非常相似
    猜你喜欢
    • 1970-01-01
    • 2021-02-16
    • 1970-01-01
    • 1970-01-01
    • 2014-08-22
    • 1970-01-01
    • 2011-09-03
    • 1970-01-01
    • 2021-10-17
    相关资源
    最近更新 更多