从pandas文档中,我得到Series.axes
将返回一个列表,实际上它是一个列表
$ python3 process_data.py
<class 'list'>
但是,当我尝试打印列表的字符串表示时,我得到了这个
直接打印
print(row.axes)
$ python3 process_data.py
Index(['rank', 'name','high', 'low', 'analysis'],
dtype='object')
根本看起来不像普通列表。
>>> [1,2,3,4,5]
[1, 2, 3, 4, 5]
我仍然可以通过list_name[0][index]
访问奇怪列表中的信息,这就像一个二维列表。我的意思是如果它的内部类型是list,它怎么会有这种行为。如果它是像对象一样的numpy数组,为什么内部类型仍然是列表。
编辑:
def process_nextfile(date, catagory):
df1 = pd.read_csv('{}all_csv/{}/catagory{}'.format(BASE_DIR, date, catagory), header = None, names = CATAGORY_HEADER[catagory-1])
for index, row in df1.iterrows():
print(row.axes.__name__)
break
if __name__ == '__main__':
process_nextfile('2016-04-05', 2)
答案 0 :(得分:2)
当您使用iterrows()
时,每一行都是一个pandas系列,axes
属性返回标签/或索引列表。所以列表中包含的是索引对象,请查看这个简单的示例:
s = pd.Series([1,2,3])
s.axes
# [RangeIndex(start=0, stop=3, step=1)]
要获取普通列表,您可以访问索引对象,然后将其转换为列表:
s.axes[0].tolist()
# [0, 1, 2]