根据 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
假设我们想要根据以下条件将此 DataFrame 拆分为两个:销售额为 30:
直接比较拆分:
最简单的方法是使用布尔索引运算符 '>=' 进行直接比较:
<code class="python">s = 30 df1 = df[df['Sales'] >= s] print (df1) A Sales 2 7 30 3 6 40 4 1 50</code>
这将创建一个名为 df1 的新 DataFrame,其中包含 Sales 值大于或等于 30 的所有行。
使用反向掩码拆分:
要创建一个包含 Sales 小于 30 的行的 DataFrame,我们可以使用 ~:
<code class="python">df2 = df[~mask] print (df2) A Sales 0 3 10 1 4 20</code>
反转掩码,这将创建一个名为 df2 的新 DataFrame,其中包含 Sales 值小于 30 的所有行30.
以上是如何根据 Pandas 中的特定列值拆分 DataFrame?的详细内容。更多信息请关注PHP中文网其他相关文章!