【发布时间】:2021-02-15 15:34:46
【问题描述】:
我得到了一个以浮点数为索引的 pandas 多索引 DataFrame。考虑以下示例:
arrays = [[0.21,0.21,0.21,0.22,0.22,0.22,0.23,0.23,0.23],
[0.81,0.8200000000000001,0.83,0.81,0.8200000000000001,0.83,0.81,0.8200000000000001,0.83]]
df = pd.DataFrame(np.random.randn(9, 2), index=arrays)
df
# 0 1
# 0.21 0.81 -2.234036 -0.145643
# 0.82 0.367248 -1.471617
# 0.83 -0.764520 0.686241
# 0.22 0.81 1.380429 1.546513
# 0.82 1.230707 1.826980
# 0.83 -1.198403 0.377323
# 0.23 0.81 -0.418367 -0.125763
# 0.82 0.682860 -0.119080
# 0.83 -1.802418 0.357573
我以这种形式获得了这个 DataFrame。现在,如果我想检索条目df.loc[(0.21, 0.82)],我会收到一个错误,因为索引实际上并没有携带0.82,而是0.8200000000000001。我事先不知道这些问题出现在索引的什么地方。我该如何解决这个问题?我的想法是将多索引的两个级别四舍五入到有效的小数位数,在这种情况下为 2。但怎么可能呢?有没有更好的解决方案?
【问题讨论】:
-
有更好的解决方案吗?这取决于具体情况;数据是什么,它的用途等等。我的想法是将多索引的两个级别四舍五入到有效的小数位数,在这种情况下为 2。但是怎么才能做到呢? 你有没有尝试过,做过任何研究?对“pandas round numbers”进行简单的网络搜索即可获得大部分信息。
标签: python pandas dataframe indexing multi-index