Python pandas 数据透视输出与文档不同——生成的 DataFrame 在左上角有列名
Python pandas pivot output differs from documentation -- resulting DataFrame has column name in top left
以下是 pandas 数据透视文档的摘录:
http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.pivot.html
>>> df = pd.DataFrame({'foo': ['one','one','one','two','two','two'],
'bar': ['A', 'B', 'C', 'A', 'B', 'C'],
'baz': [1, 2, 3, 4, 5, 6]})
>>> df
foo bar baz
0 one A 1
1 one B 2
2 one C 3
3 two A 4
4 two B 5
5 two C 6
>>> df.pivot(index='foo', columns='bar', values='baz')
A B C
one 1 2 3
two 4 5 6
当我 运行 上面的确切代码 (pandas 0.19.2) 时,我得到以下输出:
bar A B C
foo
one 1 2 3
two 4 5 6
我的问题是:
- 其他人有这种行为吗?
- 为什么行为与文档不同?
- 这个生成的 DataFrame 的本质是什么?我对 pandas 很陌生,所以这可能是个愚蠢的问题。但我不认为我以前在索引上看到过名称(栏)。我不知道它是什么?
谢谢。
我认为这是由于生成文档的旧版本 pandas,在最新版本中,如果通过,它将命名索引,在本例中为 'foo'
In [111]:
pv = df.pivot(index='foo', columns='bar', values='baz')
pv.index
Out[111]:
Index(['one', 'two'], dtype='object', name='foo')
你可以看到索引现在有一个'name'
属性
以下是 pandas 数据透视文档的摘录:
http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.pivot.html
>>> df = pd.DataFrame({'foo': ['one','one','one','two','two','two'],
'bar': ['A', 'B', 'C', 'A', 'B', 'C'],
'baz': [1, 2, 3, 4, 5, 6]})
>>> df
foo bar baz
0 one A 1
1 one B 2
2 one C 3
3 two A 4
4 two B 5
5 two C 6
>>> df.pivot(index='foo', columns='bar', values='baz')
A B C
one 1 2 3
two 4 5 6
当我 运行 上面的确切代码 (pandas 0.19.2) 时,我得到以下输出:
bar A B C
foo
one 1 2 3
two 4 5 6
我的问题是:
- 其他人有这种行为吗?
- 为什么行为与文档不同?
- 这个生成的 DataFrame 的本质是什么?我对 pandas 很陌生,所以这可能是个愚蠢的问题。但我不认为我以前在索引上看到过名称(栏)。我不知道它是什么?
谢谢。
我认为这是由于生成文档的旧版本 pandas,在最新版本中,如果通过,它将命名索引,在本例中为 'foo'
In [111]:
pv = df.pivot(index='foo', columns='bar', values='baz')
pv.index
Out[111]:
Index(['one', 'two'], dtype='object', name='foo')
你可以看到索引现在有一个'name'
属性