【发布时间】:2020-06-08 14:56:33
【问题描述】:
pandas.Series.at 和 pandas.MultiIndex 使用的正确方法是什么,或者它不受支持?
import pandas as pd # pd.__version__ == '0.25.1'
d1 = pd.Series([10, 20, 30], index=[0,1,2])
print(d1.at[1]) # works
d2 = pd.Series([10, 20, 30], index=pd.MultiIndex.from_product([[0], [0,1,2]]))
print(d2.at[(0,1)])
# ValueError: At based indexing on an non-integer index can only have non-integer indexers
d3 = pd.Series([10, 20, 30],
index=pd.MultiIndex.from_product([[pd.Timestamp('2020-02-24')], [0,1,2]]))
print(d3.at[('2020-02-24',1)])
print(d3.at[(pd.Timestamp('2020-02-24'),1)])
# TypeError: _get_value() got multiple values for argument 'takeable'
以下是上述系列的打印输出:
>>> print(d1)
0 10
1 20
2 30
dtype: int64
>>> print(d2)
0 0 10
1 20
2 30
dtype: int64
>>> print(d3)
2020-02-24 0 10
1 20
2 30
dtype: int64
非常感谢您的帮助!
【问题讨论】:
标签: python pandas series multi-index