Python 如何在循环函数中指定变量名

Python 如何在循环函数中指定变量名,python,Python,我试图创建一个函数,它返回列表中指定的数据帧中三列的平方值。我试着用下面的方式循环浏览这些列。每列['Close_large'、'Close_mid'、'Close_small']都是包含浮点值的数据帧的一部分 def x_squared(DataFrame): '''squares all the values in columns''' columns = ['Close_large', 'Close_mid', 'Close_small'] for columns

我试图创建一个函数,它返回列表中指定的数据帧中三列的平方值。我试着用下面的方式循环浏览这些列。每列['Close_large'、'Close_mid'、'Close_small']都是包含浮点值的数据帧的一部分

def x_squared(DataFrame):
    '''squares all the values in columns'''
    columns = ['Close_large', 'Close_mid', 'Close_small']
    for columns in DataFrame:
        DataFrame[columns + '_sqr'] = [x**2 for x in columns]
    return DataFrame
完全错误:

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-5-791ae28fe2b9> in <module>
----> 1 df = x_squared(df)

<ipython-input-3-8db48cd5ae20> in x_squared(DataFrame)
     32     columns = ['Close_large', 'Close_mid', 'Close_small']
     33     for columns in DataFrame:
---> 34         DataFrame[columns + '_std'] = [x**2 for x in columns]
     35     return DataFrame
     36 

<ipython-input-3-8db48cd5ae20> in <listcomp>(.0)
     32     columns = ['Close_large', 'Close_mid', 'Close_small']
     33     for columns in DataFrame:
---> 34         DataFrame[columns + '_std'] = [x**2 for x in columns]
     35     return DataFrame
     36 

TypeError: unsupported operand type(s) for ** or pow(): 'str' and 'int'
---------------------------------------------------------------------------
TypeError回溯(最近一次调用上次)
在里面
---->1 df=x_平方(df)
x_平方(数据帧)
32列=['Close_large'、'Close_mid'、'Close_small']
33对于DataFrame中的列:
--->34数据帧[列+'_std']=[x**2表示列中的x]
35返回数据帧
36
英寸(.0)
32列=['Close_large'、'Close_mid'、'Close_small']
33对于DataFrame中的列:
--->34数据帧[列+'_std']=[x**2表示列中的x]
35返回数据帧
36
TypeError:不支持**或pow()的操作数类型:'str'和'int'

如何解决此问题?

您可以在按名称访问整个列后将其平方

试试这个:

def x_平方(数据帧):
''将列中的所有值平方''
列=['Close_large'、'Close_mid'、'Close_small']
对于列中的列:
数据帧[col+'_sqr']=数据帧[col]**2
返回数据帧

如何将字符串值平方?列中包含我要平方的浮点值
是字符串列表。
DataFrame
是什么样子的?我没有看到这个
['Close\u large'、'Close\u mid'、'Close\u small']
@Deadpool
列实际上不是给定的列表。它在
for
loopP.S命名参数
DataFrame
中被覆盖,因为
DataFrame
也是该类型的名称,非常感谢!!如果你不介意我问,为什么我的功能不工作?谢谢你的提示,非常感谢@MisterButter这与你如何使用
for
循环有关。请注意,当我迭代
列时,您迭代了
DataFrame