Python 设置索引的方式有什么不同
设置数据帧索引的方式有什么不同Python 设置索引的方式有什么不同,python,pandas,dataframe,Python,Pandas,Dataframe,设置数据帧索引的方式有什么不同 data = [['A', 5], ['B', 6], ['C', 7]] df = pd.DataFrame(data=data, columns=['key', 'amount'], index= ['key']) 我发现以下错误: Shape of passed values is (2, 3), indices imply (2, 1) 如果我按以下方式操作,则工作正常: df2 = pd.DataFrame(data=data, columns=['
data = [['A', 5], ['B', 6], ['C', 7]]
df = pd.DataFrame(data=data, columns=['key', 'amount'], index= ['key'])
我发现以下错误:
Shape of passed values is (2, 3), indices imply (2, 1)
如果我按以下方式操作,则工作正常:
df2 = pd.DataFrame(data=data, columns=['key', 'amount'])
df2.set_index(['key'], inplace=True)
我设置索引的方式有什么不同?第一种方式:
data = [['A', 5], ['B', 6], ['C', 7]]
df = pd.DataFrame(data=data, columns=['key', 'amount'], index= ['key'])
您将索引指定为'key'
的单个值。换句话说,将有一行的标签是“key”
第二种方式:
df2 = pd.DataFrame(data=data, columns=['key', 'amount'])
df2.set_index(['key'], inplace=True)
您指定了一个名为'key'
的列,该列可能包含许多行。随后,您指示df2
使其索引等于名为'key'
的整个列。一方面,预期索引为数组,并将用作行的索引,例如:
In [17]: data
Out[17]: [['A', 5], ['B', 6], ['C', 7]]
In [18]: df = pd.DataFrame(data=data, index=['a', 'b', 'c'])
In [19]: df
Out[19]:
0 1
a A 5
b B 6
c C 7
这不是你想要达到的
另一方面,将一个(或多个)列设置为成为索引,这是您在本例中要执行的操作。您不能为索引指定列,它需要一个与最终df长度相同的索引对象或数组,因此您必须在构建后执行此操作