python DataFrame之MultiIndex 的使用

import pandas as pd

import pprint as p

# 嵌套列表
arrays = [['a', 'a', 'b', 'b'], [1, 2, 1, 2]]

# 创建 MultiIndex
index = pd.MultiIndex.from_arrays(arrays, names=('letter', 'number'))

# 使用 MultiIndex 创建 DataFrame
df = pd.DataFrame({'value': [10, 20, 30, 40]}, index=index)

p.pprint(df)



data = {
    'letter': ['a', 'a', 'b', 'b'],
    'number': [1, 2, 1, 2],
    'value': [10, 20, 30, 40]
}
df = pd.DataFrame(data)

# 设置 MultiIndex
df = df.set_index(['letter', 'number'])

p.pprint(df)

print('交换索引层级')
# 交换索引层级
df_swapped = df.swaplevel('letter', 'number')
print(df_swapped)


# 按某一层级排序
print('按某一层级排序')
df_sorted = df.sort_index(level='number')
print(df_sorted)





# 创建一个更复杂的 DataFrame
arrays = [
    ['bar', 'bar', 'baz', 'baz', 'foo', 'foo', 'qux', 'qux'],
    ['one', 'two', 'one', 'two', 'one', 'two', 'one', 'two']
]
index = pd.MultiIndex.from_arrays(arrays, names=['first', 'second'])
df = pd.DataFrame({'A': [1, 2, 3, 4, 5, 6, 7, 8], 'B': [10, 20, 30, 40, 50, 60, 70, 80]}, index=index)

p.pprint(df)

# 按层级选择数据
print('按层级选择数据')
print(df.loc['bar'])
print('bar+one')
print(df.loc[('bar', 'one')])

# 按层级进行统计分析
print('按层级进行统计分析')
print(df.groupby(level='first').sum())

posted @ 2024-05-23 16:52  C余L小R鱼  阅读(63)  评论(0编辑  收藏  举报