抱歉,无法提供数据。这段代码是别人写的,我不明白它是怎么工作的。
有一个dataframe(df
),也就是说,100个样本长。他们将其归类为:
[EDIT问题:我忘了包括groupby语句以索引重置结束。在下面添加)。grouped_df = df.groupby('col_a').sum()['col_b'].sort_values().reset_index()
这导致DataFrame对象的长度为10。
然后,他们创建了一个布尔序列作为掩码使用。他们基于第三列中的值从原始 Dataframe (df
)创建了它:mask = df['col_c'] > 10
这就产生了一个长度为100的布尔级数,自然与df
的长度相同。
然后他们将mask
(len=100)应用于grouped_df
(len=10),结果是长度为5的DataFrame对象。
这是怎么做到的怎么回事?当长度不匹配时,如何将布尔序列应用于 Dataframe 作为掩码?
1条答案
按热度按时间gojuced71#
下面是我对原始question的previous答案。
更新:
这是因为pandas静默地将
grouped_df
的索引与布尔值mask
对齐。下面是一个会导致类似场景的配置:
输出: