python - Pandas Apply 函数返回两个新列

标签 python python-2.7 pandas

我有一个 pandas 数据框,我想对其使用应用函数以根据现有数据生成两个新列。我收到此错误: ValueError:传递的项目数量错误 2,放置意味着 1

import pandas as pd
import numpy as np

def myfunc1(row):
    C = row['A'] + 10
    D = row['A'] + 50
    return [C, D]

df = pd.DataFrame(np.random.randint(0,10,size=(2, 2)), columns=list('AB'))

df['C', 'D'] = df.apply(myfunc1 ,axis=1)

开始DF:

   A  B
0  6  1
1  8  4

期望的方向:

   A  B  C   D
0  6  1  16  56
1  8  4  18  58

最佳答案

根据您最近的错误,您可以通过将新列作为系列返回来避免该错误

def myfunc1(row):
    C = row['A'] + 10
    D = row['A'] + 50
    return pd.Series([C, D])

df[['C', 'D']] = df.apply(myfunc1 ,axis=1)

关于python - Pandas Apply 函数返回两个新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47969756/

相关文章:

python - 如何将连续值按规律的时间间隔序列分组?

python - 如何传递日期参数在python pandas中执行sql存储过程

python - 如何让 Flask 记录到 stdout 而不是 stderr?

python - 计算多组数据的平均值(性能问题)

python - 日期时间 12 小时格式 Pandas Python

python-2.7 - python : Program for getting maximum and minimum value without using max and min function

python - 获取异常 pickle.dump

python - 从子类 Python 导入

python - 将列表字符串或字符串转换为数据框python

python - InvalidArgumentError(请参阅上面的回溯): Shape [-1, 150,150,1] 具有负尺寸