Python 如何在循环函数中指定变量名
我试图创建一个函数,它返回列表中指定的数据帧中三列的平方值。我试着用下面的方式循环浏览这些列。每列['Close_large'、'Close_mid'、'Close_small']都是包含浮点值的数据帧的一部分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
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
。