Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 获得';int';对象不可下标";将方法应用于数据系列时出错_Python_Pandas_Analytics - Fatal编程技术网

Python 获得';int';对象不可下标";将方法应用于数据系列时出错

Python 获得';int';对象不可下标";将方法应用于数据系列时出错,python,pandas,analytics,Python,Pandas,Analytics,我有一个类似于图片中的数据框。当我应用图中的lambda时,它不会抛出任何错误 但是当我这样做的时候 list = pandas.Series([1,2,3,4,5]) new_list = list.apply(lambda x: x/x[0]) 它给了我“'int'对象不可下标”错误。这两者有什么区别吗?我做错了什么 对于一个系列,按元素应用操作。要引用系列的第一个元素,需要使用列表[0]而不是x[0]: new_list = list.apply(lambda x: x/list[0]

我有一个类似于图片中的数据框。当我应用图中的lambda时,它不会抛出任何错误

但是当我这样做的时候

list = pandas.Series([1,2,3,4,5])

new_list = list.apply(lambda x: x/x[0])
它给了我“'int'对象不可下标”错误。这两者有什么区别吗?我做错了什么


对于一个系列,按元素应用操作。要引用系列的第一个元素,需要使用列表[0]而不是x[0]:

new_list = list.apply(lambda x: x/list[0])
对于数据帧,默认情况下apply按列操作,这就是x/x[0]工作的原因

要使用相同的语法,可以使用:

new_list = list.to_frame().apply(lambda x: x/x[0])

顺便说一句,使用内置类型名(list)作为变量名不是一个好主意。

对于一个系列,请按元素操作。要引用系列的第一个元素,需要使用列表[0]而不是x[0]:

new_list = list.apply(lambda x: x/list[0])
对于数据帧,默认情况下apply按列操作,这就是x/x[0]工作的原因

要使用相同的语法,可以使用:

new_list = list.to_frame().apply(lambda x: x/x[0])

顺便说一句,使用内置类型名(列表)作为变量名不是一个好主意。

@beebeckzzz因为当您对df使用apply时,x指整个列,这是一个系列,因此x[0]起作用。@beebeckzzz因为当您对df使用apply时,x指整个列,这是一个系列,因此x[0]起作用。