diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,8 @@
 # Revision history for dataframe
 
+## 0.3.3.1
+* Fix bug in `randomSplit` causing two splits to overlap.
+
 ## 0.3.3.0
 * Better error messaging for expression failures.
 * Fix bug where exponentials were not being properly during CSV parsing.
diff --git a/dataframe.cabal b/dataframe.cabal
--- a/dataframe.cabal
+++ b/dataframe.cabal
@@ -1,6 +1,6 @@
 cabal-version:      2.4
 name:               dataframe
-version:            0.3.3.0
+version:            0.3.3.1
 
 synopsis: A fast, safe, and intuitive DataFrame library.
 
diff --git a/src/DataFrame/Operations/Subset.hs b/src/DataFrame/Operations/Subset.hs
--- a/src/DataFrame/Operations/Subset.hs
+++ b/src/DataFrame/Operations/Subset.hs
@@ -348,10 +348,10 @@
         withRand = df & insertUnboxedVector "__rand__" rand
      in
         ( withRand
-            & filterWhere (BinaryOp "geq" (>=) (Col @Double "__rand__") (Lit (1 - p)))
+            & filterWhere (BinaryOp "leq" (<=) (Col @Double "__rand__") (Lit p))
             & exclude ["__rand__"]
         , withRand
-            & filterWhere (BinaryOp "geq" (<) (Col @Double "__rand__") (Lit p))
+            & filterWhere (BinaryOp "gt" (>) (Col @Double "__rand__") (Lit p))
             & exclude ["__rand__"]
         )
 
