英语中,单词 stack
意为堆叠、堆放、摞起之意。
stack
方法需要通过 DataFrame
对象的实例方法调用,如
df.stack()
现有如下内容的 CSV
格式的数据文件
语言,北京,上海,深圳,杭州
C++,79,29,35,29
Java,61,40,29,50
PHP,19,61,53,77
Python,36,58,73,69
Swift,88,51,58,99
JavaScript,36,58,81,89
加载时需指定列字段
df = pd.read_csv('languages.csv', index_col=['语言'])
得到的 DataFrame
类型的数据如下所示
北京 | 上海 | 深圳 | 杭州 | |
---|---|---|---|---|
语言 | ||||
C++ | 79 | 29 | 35 | 29 |
Java | 61 | 40 | 29 | 50 |
PHP | 19 | 61 | 53 | 77 |
Python | 36 | 58 | 73 | 69 |
Swift | 88 | 51 | 58 | 99 |
JavaScript | 36 | 58 | 81 | 89 |
调用
df.stack()
将得到
语言 | ||
---|---|---|
C++ | 北京 | 79 |
上海 | 29 | |
深圳 | 35 | |
杭州 | 29 | |
Java | 北京 | 61 |
上海 | 40 | |
深圳 | 29 | |
杭州 | 50 | |
PHP | 北京 | 19 |
上海 | 61 | |
深圳 | 53 | |
杭州 | 77 | |
Python | 北京 | 36 |
上海 | 58 | |
深圳 | 73 | |
杭州 | 69 | |
Swift | 北京 | 88 |
上海 | 51 | |
深圳 | 58 | |
杭州 | 99 | |
JavaScript | 北京 | 36 |
上海 | 58 | |
深圳 | 81 | |
杭州 | 89 |
这是一个 Series
类型的对象,其索引一个多维索引
MultiIndex([( 'C++', '北京'),
( 'C++', '上海'),
( 'C++', '深圳'),
( 'C++', '杭州'),
( 'Java', '北京'),
( 'Java', '上海'),
( 'Java', '深圳'),
( 'Java', '杭州'),
( 'PHP', '北京'),
( 'PHP', '上海'),
( 'PHP', '深圳'),
( 'PHP', '杭州'),
( 'Python', '北京'),
( 'Python', '上海'),
( 'Python', '深圳'),
( 'Python', '杭州'),
( 'Swift', '北京'),
( 'Swift', '上海'),
( 'Swift', '深圳'),
( 'Swift', '杭州'),
('JavaScript', '北京'),
('JavaScript', '上海'),
('JavaScript', '深圳'),
('JavaScript', '杭州')],
names=['语言', None])