Pandas中根据列值分割DataFrame
在数据分析中,经常会遇到需要将一个DataFrame分割成多个的情况基于特定列值的数据帧。一种这样的情况是,当我们想要将 DataFrame 分成两部分时:一个包含值低于某个阈值的行,另一个包含值高于或等于该阈值的行。
在 Pandas 中,我们可以完成此任务使用布尔索引进行分割。以下是我们如何通过示例实现这种拆分:
考虑以下 DataFrame,其中包含名为“Sales”的列:
df = pd.DataFrame({'Sales':[10,20,30,40,50], 'A':[3,4,7,6,1]}) print (df) A Sales 0 3 10 1 4 20 2 7 30 3 6 40 4 1 50
假设我们想根据 Sales 值 30 将这个 DataFrame 分成两部分:
直接比较拆分:
The最简单的方法是与布尔索引运算符 '>=' 直接比较:
s = 30
df1 = df[df['Sales'] >= s]
print (df1)
A Sales
2 7 30
3 6 40
4 1 50
这将创建一个名为 df1 的新 DataFrame,其中包含 Sales 值大于或等于 30 的所有行。
使用反向掩码拆分:
要创建一个包含 Sales 小于 30 行的 DataFrame,我们可以使用以下命令反转掩码~:
df2 = df[~mask]
print (df2)
A Sales
0 3 10
1 4 20
这将创建一个名为 df2 的新 DataFrame,其中包含 Sales 值小于 30 的所有行。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3