Python pandas是一种数据分析和操作工具,提供了多种索引方式。其中最常用的索引方式是MultiIndex,顾名思义,MultiIndex可以理解为多个索引的组合。
本文将详细介绍Python pandas创建多层索引MultiIndex的6种方式。
方法一:直接指定MultiIndex
直接使用pandas.MultiIndex.from_tuples()方法,依次传入多个元组组成列表即可创建多层索引MultiIndex。
import pandas as pd
tuples = [('a', 'x'), ('a', 'y'), ('b', 'x'), ('b', 'y')]
index = pd.MultiIndex.from_tuples(tuples, names=['first', 'second'])
print(index)
输出结果如下:
MultiIndex([('a', 'x'),
('a', 'y'),
('b', 'x'),
('b', 'y')],
names=['first', 'second'])
方法二:使用pandas.MultiIndex.from_arrays()方法
使用pandas.MultiIndex.from_arrays()方法,依次传入多个数组组成列表即可创建多层索引MultiIndex。
import pandas as pd
arrays = [['a', 'a', 'b', 'b'], ['x', 'y', 'x', 'y']]
index = pd.MultiIndex.from_arrays(arrays, names=('first', 'second'))
print(index)
输出结果如下:
MultiIndex([('a', 'x'),
('a', 'y'),
('b', 'x'),
('b', 'y')],
names=['first', 'second'])
方法三:使用pandas.MultiIndex.from_product()方法
使用pandas.MultiIndex.from_product()方法,依次传入多个数组组成列表即可创建多层索引MultiIndex。
import pandas as pd
iterables = [['a', 'b'], ['x', 'y']]
index = pd.MultiIndex.from_product(iterables, names=['first', 'second'])
print(index)
输出结果如下:
MultiIndex([('a', 'x'),
('a', 'y'),
('b', 'x'),
('b', 'y')],
names=['first', 'second'])
方法四:使用pandas.MultiIndex.from_frame()方法
使用pandas.MultiIndex.from_frame()方法,传入一个DataFrame即可创建多层索引MultiIndex。
import pandas as pd
df = pd.DataFrame({'first': ['a', 'a', 'b', 'b'], 'second': ['x', 'y', 'x', 'y']})
index = pd.MultiIndex.from_frame(df)
print(index)
输出结果如下:
MultiIndex([('a', 'x'),
('a', 'y'),
('b', 'x'),
('b', 'y')],
names=['first', 'second'])
方法五:使用set_index()方法
使用DataFrame的set_index()方法,传入一个包含多个列名的列表即可创建多层索引MultiIndex。
import pandas as pd
df = pd.DataFrame({'first': ['a', 'a', 'b', 'b'], 'second': ['x', 'y', 'x', 'y'], 'value': [1, 2, 3, 4]})
index = df.set_index(['first', 'second']).index
print(index)
输出结果如下:
MultiIndex([('a', 'x'),
('a', 'y'),
('b', 'x'),
('b', 'y')],
names=['first', 'second'])
方法六:使用MultiIndex.from_frame().tolist()方法
使用pandas.MultiIndex.from_frame().tolist()方法,传入一个包含多个列名的列表即可创建多层索引MultiIndex。
import pandas as pd
df = pd.DataFrame({'first': ['a', 'a', 'b', 'b'], 'second': ['x', 'y', 'x', 'y']})
index = pd.MultiIndex.from_frame(df).tolist()
print(index)
输出结果如下:
[('a', 'x'), ('a', 'y'), ('b', 'x'), ('b', 'y')]
以上就是Python pandas创建多层索引MultiIndex的6种方式,可以根据具体情况选择适合的方式创建多层索引。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python pandas创建多层索引MultiIndex的6种方式 - Python技术站