我试图使用for循环迭代列名列表,并在每次迭代时根据字符串前缀和原始列名(存储在列表中)创建一个新列。问题是数据框认为变量是
时框架中的一个系列cols_to_transform = ['Price','Km_From_CBD','Local_Median_Price', 'AreaSize']
for x in cols_to_transform:
df.x #This is where the problem
df[x] = df[x>1]
newcolname = ('T1_Pre_'+ x)
df.newcolname = df.x + 1 #and same problem here
(DataFrame'对象没有属性' x')
(DataFrame'对象没有属性' newcolname')
理想情况下,我会有一个"全局变量"或覆盖预期的pandas对象的参数,并将变量的内容作为列名而不是变量本身。
除了创建列之外,我不能使用pandas apply我需要创建一系列显示转换变化的子图。
我知道我可以将整行代码强制转换为字符串,然后使用exec,但我真的很喜欢这样做,因为它感觉就像是一种廉价的工作。
提前致谢! 这也是我的第一个问题,对我很轻松:)
答案 0 :(得分:0)
试试这段代码:
cols_to_transform = ['Price','Km_From_CBD','Local_Median_Price', 'AreaSize']
for x in cols_to_transform:
df[x]
newcolname = ('T1_Pre_'+ x)
df.newcolname = df[x] + 1