根据列值拆分 Pandas DataFrame
在 Pandas 中,一个常见的场景是需要根据列值将 DataFrame 拆分为多个子集特定列中存在的值。这允许有针对性的数据分析和操作。
为了实现这一点,我们可以利用 Pandas 中布尔索引的强大功能。让我们考虑一个包含名为“Sales”的列的 DataFrame,并探讨如何根据“Sales”值是低于还是高于阈值 s' 将其分成两部分。
解决方案:
<code class="python"># Create a DataFrame with a "Sales" column df = pd.DataFrame({'Sales':[10,20,30,40,50], 'A':[3,4,7,6,1]}) print (df)</code>
A Sales 0 3 10 1 4 20 2 7 30 3 6 40 4 1 50
<code class="python"># Split the DataFrame based on "Sales" values s = 30 df1 = df[df['Sales'] >= s] print (df1)</code>
A Sales 2 7 30 3 6 40 4 1 50
这将创建一个新的 DataFrame df1,其中包含“Sales”值大于或等于 's' 的行。
<code class="python">df2 = df[df['Sales'] < s] print (df2)
A Sales 0 3 10 1 4 20
df2 包含“Sales”值小于 's' 的行。
使用按位求反的替代方法:
除了使用大于或等于运算符,我们还可以使用按位求反(~)来反转掩码:
<code class="python">mask = df['Sales'] >= s df1 = df[mask] df2 = df[~mask] print (df1)</code>
A Sales 2 7 30 3 6 40 4 1 50
<code class="python">print (df2)</code>
A Sales 0 3 10 1 4 20
这种方法实现了相同的分割,但允许更简洁和优化的编码风格。
以上是如何根据列值将 Pandas DataFrame 拆分为子集?的详细内容。更多信息请关注PHP中文网其他相关文章!