What is DataFrame.columns.name?



你能向我解释一下,'DataFrame.columns.name'属性的目的是什么吗?

我在创建数据透视表并重置索引后无意中得到了它。

import pandas as pd
df = pd.DataFrame(['a', 'b'])
print(df.head())
# OUTPUT:
#    0
# 0  a
1  b
df.columns.name = 'temp'
print(df.head())
# OUTPUT:
# temp  0
# 0     a
# 1     b

在操作数据时,为列级别命名可能在许多方面都很有用。

一个简单的例子是当你使用'stack(('

df = pd.DataFrame([['a', 'b'], ['d', 'e']], columns=['hello', 'world'])
print(df.stack())
0  hello    a
world    b
1  hello    d
world    e
df.columns.name = 'temp'
print(df.stack())
temp 
0  hello    a
world    b
1  hello    d
world    e
dtype: object

如您所见,堆叠的 DF 保留了列的级别名称。 在多索引/多级数据帧中,这可能非常有用

稍微复杂一些的示例(来自文档(:

tuples = [('bar', 'one'),
('bar', 'two'),
('baz', 'one'),
('baz', 'two'),
('foo', 'one'),
('foo', 'two'),
('qux', 'one'),
('qux', 'two')]
index = pd.MultiIndex.from_tuples(tuples, names=['first', 'second'])
pd.MultiIndex(levels=[['bar', 'baz', 'foo', 'qux'], ['one', 'two']],
labels=[[0, 0, 1, 1, 2, 2, 3, 3], [0, 1, 0, 1, 0, 1, 0, 1]],
names=['first', 'second'])
s = pd.Series(np.random.randn(8), index=index)
print(s)
first  second
bar    one      -0.9166
two      1.0698 
baz    one      -0.8749
two      1.3895 
foo    one      0.5333 
two      0.1014 
qux    one      -1.2350
two      -0.6479
dtype: float64
s.unstack()
second     one     two
first                 
bar    -0.9166 1.0698 
baz    -0.8749 1.3895 
foo    0.5333  0.1014 
qux    -1.2350 -0.6479

最新更新