首页 >后端开发 >Python教程 >如何根据列值将 Pandas DataFrame 拆分为子集?

如何根据列值将 Pandas DataFrame 拆分为子集?

Barbara Streisand
Barbara Streisand原创
2024-10-19 22:33:02757浏览

How to Split Pandas DataFrame into Subsets Based on Column Value?

根据列值拆分 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn