gpt4 book ai didi

python - 在 Pandas 系列中使用元组作为索引

转载 作者:太空宇宙 更新时间:2023-11-03 14:03:10 26 4
gpt4 key购买 nike

我有一个非常简单的任务。本质上,我想创建一个 Pandas 系列并使用元组值作为索引。例如,

series_tmp = pd.Series()
series_tmp[(0,'a')] = 1

我想做的是,我想在 pd.Series 中再创建一行,其索引为 (0,'a'),其值为 1。

上面的代码得到错误:

KeyError: '[0 1] not in index'

有什么帮助吗?

我知道多索引,但这对我的情况没有帮助。因为我需要非常复杂的元组,例如 ('a',(2,'c'),'d') 作为键。

结论:感谢所有精彩的回答!要添加一个以元组为索引的行,我们应该这样做:

series_tmp = series_tmp.append(pd.Series([1],index=[(0,'a')]))

最佳答案

如果您要从数据创建一个具有多索引的系列对象,您可以通过构建一个以元组作为键、数据作为值的字典来实现。然后将其传递给系列构造函数。

import pandas as pd

d = {(0,'a'):1, (0,'b'):1.5, (1,'a'):3, (1,'b'):3.5}
s = pd.Series(d)
s
# returns:
0 a 1.0
b 1.5
1 a 3.0
b 3.5
dtype: float64

根据评论编辑:

对于这种情况,需要显式元组的索引。在这种情况下,您可以提前构建索引,然后在构建系列时将其用作 index 参数。

ix = pd.Index([(1,'a'), ('a',(2,'b')), (2,('b',1))])
s = pd.Series(data=[1,5,9], index=ix)
s
# returns:
(1, a) 1
(a, (2, b)) 5
(2, (b, 1)) 9
dtype: int64

# check indexing into the series object
s[('a',(2,'b'))]
# returns:
5

关于python - 在 Pandas 系列中使用元组作为索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46985924/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com