python双索引怎么引用_对Pandas MultiIndex(多重索引)详解

创建多重索引

In [16]: df = pd.DataFrame(np.random.randn(3, 8), index=['A', 'B', 'C'], columns=index)

In [17]: df

Out[17]:

first bar baz foo qux \

second one two one two one two one

A 0.895717 0.805244 -1.206412 2.565646 1.431256 1.340309 -1.170299

B 0.410835 0.813850 0.132003 -0.827317 -0.076467 -1.187678 1.130127

C -1.413681 1.607920 1.024180 0.569605 0.875906 -2.211372 0.974466

first

second two

A -0.226169

B -1.436737

C -2.006747

获得索引信息

get_level_values

In [23]: index.get_level_values(0)

Out[23]: Index(['bar', 'bar', 'baz', 'baz', 'foo', 'foo', 'qux', 'qux'], dtype='object', name='first')

In [24]: index.get_level_values('second')

Out[24]: Index(['one', 'two', 'one', 'two', 'one', 'two', 'one', 'two'], dtype='object', name='second')

基本索引

In [25]: df['bar']

Out[25]:

second one two

A 0.895717 0.805244

B 0.410835 0.813850

C -1.413681 1.607920

In [26]: df['bar', 'one']

Out[26]:

A 0.895717

B 0.410835

C -1.413681

Name: (bar, one), dtype: float64

In [27]: df['bar']['one']

Out[27]:

A 0.895717

B 0.410835

C -1.413681

Name: one, dtype: float64

使用reindex对齐数据

数据准备

In [11]: s = pd.Series(np.random.randn(8), index=arrays)

In [12]: s

Out[12]:

bar one -0.861849

two -2.104569

baz one -0.494929

two 1.071804

foo one 0.721555

two -0.706771

qux one -1.039575

two 0.271860

dtype: float64

s序列加(0~-2)索引的值,因为s[:-2]没有最后两个的索引,所以为NaN.s[::2]意思是步长为1.

In [34]: s + s[:-2]

Out[34]:

bar one -1.723698

two -4.209138

baz one -0.989859

two 2.143608

foo one 1.443110

two -1.413542

qux one NaN

two NaN

dtype: float64

In [35]: s + s[::2]

Out[35]:

bar one -1.723698

two NaN

baz one -0.989859

two NaN

foo one 1.443110

two NaN

qux one -2.079150

two NaN

dtype: float64

以上这篇对Pandas MultiIndex(多重索引)详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Pandas 是一个强大的数据分析工具,提供了很多常用的函数来处理数据,下面是一些常用的函数及其用法: 1. read_csv():读取 CSV 文件并返回一个 DataFrame 对象。 2. head():返回 DataFrame 的前几行数据,默认为前 5 行。 3. tail():返回 DataFrame 的后几行数据,默认为后 5 行。 4. info():返回 DataFrame 的基本信息,包括每列的数据类型、非空值数量等。 5. describe():返回 DataFrame 的基本统计信息,包括计数、均值、标准差、最小值、最大值等。 6. shape:返回 DataFrame 的行数和列数。 7. columns:返回 DataFrame 的列名。 8. index:返回 DataFrame 的行索引。 9. loc[]:根据行标签和列标签访问 DataFrame 中的元素。 10. iloc[]:根据行索引和列索引访问 DataFrame 中的元素。 11. dropna():删除 DataFrame 中的缺失值。 12. fillna():用指定的值或方法填充 DataFrame 中的缺失值。 13. groupby():按照指定的列对 DataFrame 进行分组。 14. apply():对 DataFrame 的每一列应用指定的函数。 15. pivot_table():根据指定的列计算 DataFrame 的透视表。 16. merge():将两个 DataFrame 按照指定的列进行合并。 17. sort_values():按照指定的列对 DataFrame 进行排序。 18. drop_duplicates():去除 DataFrame 中的重复行。 19. value_counts():统计 DataFrame 中每个元素出现的次数。 20. isnull():判断 DataFrame 中的元素是否为空值。 这些函数覆盖了 Pandas 中的很多常用操作,掌握它们对于数据分析和处理非常有帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值