[英]How to create a Pandas dataframe with multiindex columns with several level 0?
我想构建一个 dataframe 在列中有多个索引。 必须有两个级别,如下例所示(0 和 1),但级别 0 route
分配给第 1 列和第 2 列,级别 0 action
分配给第 3 列。
我怎样才能做到这一点?
在此示例中,我可以将 0 级route
分配给第 1、2 和 3 列:
indexes = pd.MultiIndex.from_tuples([['paris']], names=['name'])
columns = pd.MultiIndex.from_product([['route'], ['type', 'action src', 'action dst']], names=['first', 'second'])
df = pd.DataFrame([[2, 3, 4]], index=indexes, columns=columns)
df
first route
second type action src action dst
name
paris 2 3 4
但所需的输出是这样的:
first route action
second type source destination
name
paris 2 3 4
我不确定这个问题的标题是否恰当,所以请随意给它一个更合适的标题。
您可以使用pandas.MultiIndex.from_arrays()
import pandas as pd
indexes = pd.MultiIndex.from_tuples([['paris']], names=['name'])
columns = pd.MultiIndex.from_arrays([['route', 'action', 'action'], ['type', 'source', 'destination']], names=['first', 'second'])
df = pd.DataFrame([[2, 3, 4]], index=indexes, columns=columns)
print(df)
first route action
second type source destination
name
paris 2 3 4
只需使用pandas.MultiIndex.from_arrays()
:
col = pd.MultiIndex.from_arrays([['route', 'action', 'action'], ['type', 'source', 'destination']], names=['first', 'second'])
最后:
df.columns=col
现在,如果您打印df
,您将获得所需的 output:
first route action
second type source destination
name
paris 2 3 4
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.