Python 将具有唯一计算值的多列添加到数据帧
我想使用原始数据框中的函数和值向数据框添加新列 创建数据帧Python 将具有唯一计算值的多列添加到数据帧,python,pandas,dataframe,assign,Python,Pandas,Dataframe,Assign,我想使用原始数据框中的函数和值向数据框添加新列 创建数据帧 df = pd.DataFrame({'f1' : np.random.randn(10), 'f2' : np.random.randn(10), 'f3' : np.random.randn(10), 'f4' : np.random.randn(10), 'f5'
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列。您可以尝试此操作
import pandas as pd
import numpy as np
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.loc[:,newcol[s]] = df[[df.columns[s]]]*s
你可以试试这个
import pandas as pd
import numpy as np
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.loc[:,newcol[s]] = df[[df.columns[s]]]*s
IIUC
IIUC