我使用的是Python 2.7.5,这种格式不起作用。据我所知,它可以在我的另一台计算机上工作,它也有2.7
train_data.ix[:,1:-1]
我得到的错误是:
AttributeError: 'list' object has no attribute 'ix'
如果我使用train_data[:,1:-1]
,则错误为:
TypeError: list indices must be integers, not tuple
我该如何解决这个问题?
谢谢!
答案 0 :(得分:3)
Lists和NumPy数组没有ix
方法:
In [8]: import numpy as np
In [10]: x = np.array([])
In [11]: x.ix
AttributeError: 'numpy.ndarray' object has no attribute 'ix'
但是Pandas Series和DataFrame确实有ix
方法:
In [16]: import pandas as pd
In [17]: y = pd.Series([1,2])
In [18]: y.ix[0]
Out[18]: 1
In [19]: y.ix[1]
Out[19]: 2
如果train_data
是Pandas DataFrame,那么train_data.ix[:,1:-1]
选择从第二列到倒数第二列的所有行。 :
表示所有行,1:-1
表示倒数第二列的第二行。
答案 1 :(得分:1)
python切片表示法的语法是list:
list[start:end:step]
如果切片表示法中有逗号,则会给出元组错误。
答案 2 :(得分:0)
如果您使用
list1=[1,2,3,4,5,6,7]
>>> list1[:1:-1]
[7, 6, 5, 4, 3]
如果您想要反转列表,可以使用
>>> list1[::-1]
[7, 6, 5, 4, 3, 2, 1]
答案 3 :(得分:0)
第一个错误表明list
对象没有属性ix
(实际上它没有):
>>> [].ix
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'list' object has no attribute 'ix'
在第二段代码中,您尝试在切片中使用逗号。根据这个document你不能用python的列表来做。 AFAIK you can do it包含一些numpy
结构,因此您需要将列表转换为其中一个。
答案 4 :(得分:0)
您问题的直接答案是它无效,因为您的train_data
是一个列表。由于您使用的train_data
属性,您尝试理解的代码中的.ix
似乎是Pandas DataFrame对象。