我有一个 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/