【发布时间】:2018-11-14 16:25:23
【问题描述】:
我正在尝试使用 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,但我真的无法做到这一点,因为这感觉像是一种廉价的工作。
提前致谢! 这也是我的第一个问题,请放轻松:)
【问题讨论】:
标签: python pandas loops for-loop series