【发布时间】:2017-08-24 03:05:32
【问题描述】:
我想使用原始数据框中的函数和值向数据框添加新列
创建数据框
df = pd.DataFrame({'f1' : np.random.randn(10),
'f2' : np.random.randn(10),
'f3' : np.random.randn(10),
'f4' : np.random.randn(10),
'f5' : np.random.randn(10)})
要应用于现有列的测试函数
def testfun(x,n):
return x * n
函数的参数 - 每个新列都有不同的参数
colnum = [1,2,3,4,5]
为要添加到数据框的新列创建新列名称
newcol = [s + "_D" for s in df.columns]
循环应用该列的函数和适当参数的现有列。每个新列都将被分配一个唯一的名称。
这部分功能不起作用!
for s in range(len(df.columns)):
df = df.assign(newcol[s] = testfun(df[[df.columns[s]]], s))
新的数据框应该包含 10 列。
【问题讨论】:
标签: python pandas dataframe assign