首页 > 解决方案 > 为什么当索引数组为布尔值时,数据框返回一个数值数组?

问题描述

我正在学习如何通过数据框训练和测试样本。我查看了一个解决方案帖子,但我无法理解代码语法的一些细节。

In [11]: df = pd.DataFrame(np.random.randn(100, 2))

In [12]: msk = np.random.rand(len(df)) < 0.8

In [13]: train = df[msk]

In [14]: test = df[~msk]

In [15]: len(test)
Out[15]: 21

In [16]: len(train)
Out[16]: 79

由于 msk 将返回一个布尔数组。msk 是 df 和 df[msk] 的索引如何返回实际的数值数据?据我了解, df 的索引应该是一个字符串或一个字符串数组。

标签: pythonpandas

解决方案


在 NumPy 和 Pandas 中,与您要索引的数组长度相同的布尔数组被视为“掩码”,并选择掩码为 True 的值。


推荐阅读