pandas:将list转换为int64index

时间:2015-02-17 22:12:19

标签: python list python-3.x pandas dataframe

假设我在pandas中有一个DataFrame df,行0到99,我想只保留列表df中的x行。

假设列表x有一些像[3, 10, 71]这样的值,基于一些可以改变的编程逻辑。

如果我尝试访问df[df.index[x],'SomeColName'],我通常会收到错误TypeError: unhashable type: 'Int64Index'

如何将list转换为Int64Index类型?

我正在使用Python 3.4。

1 个答案:

答案 0 :(得分:1)

此处无需将列表转换为索引 - 如果要访问特定的行和列,可以使用iloc

df.iloc[[3, 10, 71], 'SomeColName']

这将返回“&Col 39; SomeColName'”栏中第3,10和71行的DataFrame视图。

如果您想要删除所有其他行和列,可以将名称df重新分配给此视图。

df[df.index[x],df.index[x]实际上会尝试查找名为df.index[x]'SomeColName'的两列。由于列名需要是可清除的,因此当Pandas查找df.index[x]时(索引对象是可变的)会引发错误。