如何在数据框熊猫中制作列字幕?
Posted
技术标签:
【中文标题】如何在数据框熊猫中制作列字幕?【英文标题】:How can I make column's subtitle in data frame pandas? 【发布时间】:2019-06-07 09:08:09 【问题描述】:我正在尝试在以下数据集中写入子列名称。 我什至不知道如何称呼这个命名......我试图用谷歌搜索,但我找不到与此类似的案例。
这是当前数据帧
Height time_of_day resolution Height time_of_day resolution Height time_of_day resolution Height time_of_day resolution
clusters
0 1.198348 1.606481 0.910549 1.348580 0.828431 0.831974 1.260882 1.641892 1.208771 1.261636 0.656250 0.859061
1 5.324421 1.442708 0.658917 1.413960 1.634722 1.147284 2.161238 1.494318 0.786127 1.718191 1.401042 0.793313
2 1.911759 1.493056 0.892624 1.787209 1.461806 0.790385 1.307070 0.733333 0.830116 1.722415 1.190232 0.594089
3 1.838731 1.211574 0.594089 1.829200 1.197682 0.594089 1.688993 1.175690 0.594089 1.227832 1.650000 1.104495
0 1.679610 1.180208 0.594089 1.697233 1.229565 0.594089 1.285936 0.820833 0.923540 1.323350 0.748333 0.918220
1 1.392903 1.408730 1.176015 1.363399 1.476389 1.197830 1.253900 1.701923 1.104157 1.676119 1.283594 0.594089
2 1.205302 1.129433 0.834921 1.899686 1.395833 0.809999 1.820913 1.251233 0.594089 1.801618 1.308559 0.797348
3 2.220466 1.282801 0.812504 1.154521 1.220721 0.816337 1.809648 1.500000 0.804246 1.281305 1.661290 1.048265
0 1.234176 1.554012 1.047034 1.735501 1.361111 0.594089 1.418779 0.881219 0.594089 1.600900 1.261667 0.594089
1 4.098913 1.361111 0.651714 1.369511 1.035417 0.943745 1.830798 1.752155 0.594089 1.253299 1.683333 1.127068
2 1.400826 0.879808 0.750322 1.243563 1.663333 1.058484 1.264153 1.722619 1.293911 1.555719 1.562500 0.766965
3 1.708665 1.472403 0.641871 2.813513 1.333333 0.834848 1.405766 1.568750 0.819914 1.494361 1.166667 0.907485
0 1.777442 1.111213 0.594089 1.793937 1.287037 1.151813 1.877160 1.264583 0.837757 1.733132 1.156310 0.594089
1 1.092618 1.285714 0.905675 1.727730 1.124199 0.766965 1.147912 0.767628 0.885132 1.142368 0.513333 0.789448
2 2.488173 1.208333 0.867353 1.317397 0.990591 0.907485 1.744708 1.166016 0.594089 1.880673 1.159910 0.774561
3 1.699597 1.482372 0.995644 1.722384 1.158333 0.594089 1.201566 1.498843 0.988628 1.414641 1.178763 1.009077
0 1.525655 1.238889 0.834485 1.940050 1.319792 0.594089 1.342455 1.608607 1.050610 1.079180 0.759615 0.848058
1 1.843363 1.286706 0.594089 1.911755 1.255435 0.908561 2.487911 1.517593 0.835542 2.337511 1.515957 0.805428
2 2.214941 1.425781 0.827254 2.695153 1.550347 0.835103 1.331540 0.808824 0.926851 1.263953 1.616319 1.207323
3 1.243146 1.531250 1.212750 1.324585 1.643817 0.993911 2.051639 1.287162 0.594089 1.954031 1.240462 0.594089
我想添加这些字幕“房子”栏和“夏天,秋天,冬天,春天”。不一定要在列名下面,可以在上面...我只想给它起个名字...!
【问题讨论】:
根据您的示例,我仍然不清楚您想要做什么。你能更详细地解释一下你想做什么吗? 你想要一个多级索引吗?您的示例格式仍不清楚 是的,多级索引如“house”列显示和多级命名列... 【参考方案1】:你可以从像元组这样的可迭代的产品中构造一个pandas
MultiIndex
:
df_multiindex = pd.MultiIndex.from_product(
(('Summer', 'Autumn', 'Winter', 'Spring'),
('Height', 'time_of_day', 'resolution'))
)
并将这个MultiIndex
分配给DataFrame 的columns
:
df.columns = df_multiindex
现在您可以使用以下任一方式索引您的数据:
df.Summer.resolution
# Out: [0.910549, 0.658917 ... ]
或等同于:
df[('Summer', 'resolution')]
# Out: [0.910549, 0.658917 ... ]
或者如果你想获取'Winter'
的所有数据:
df['Winter'] # or with df.Winter
# Out: Height time_of_day resolution
1.260882 1.641892 1.208771
2.161238 1.494318 0.786127
1.307070 0.733333 0.830116
....
如果您想更改 MultiIndex 的顺序,只需更改传递给 pd.MultiIndex.from_product
的元组的顺序,并确保该顺序适合您的数据。
【讨论】:
以上是关于如何在数据框熊猫中制作列字幕?的主要内容,如果未能解决你的问题,请参考以下文章