如何根据值划分 Pandas 列?

How can I divide up a Pandas column based on its values?

我正在玩泰坦尼克号的幸存者数据库,我创建了一个单独的数据框,其中仅包含 "Fare" 和 "Cabin" 列。 "Fare" 列已排序,数据框如下所示:

      Fare        Cabin
732  0.0000          NaN
413  0.0000          NaN
806  0.0000          A36
266  0.0000          NaN
633  0.0000          NaN
674  0.0000          NaN
815  0.0000         B102
372  0.0000  B52 B54 B56
21   3.1708          NaN
378  4.0125          NaN
872  5.0000  B51 B53 B55

票价也一路上涨500.0000。 所以数据库的尾部看起来像这样:

     Fare        Cabin
679  512.3292  B51 B53 B55
737  512.3292         B101
258  512.3292          NaN
343  512.3292  B51 B53 B55
152       NaN          NaN

我想按 100 分分解此数据框。因此,一个数据帧将包含 0 ~ 100 的票价值,下一个数据帧将是 101 ~ 200 等等。我玩过 groupby 但我一无所获。我很难过。谢谢。

你可以简单地写:

df100 = df[(df.Fare < 100)]
df200 = df[(df.Fare > 100) & (df.Fare < 200)]

等等

考虑 df

df = pd.DataFrame(dict(Fare=np.arange(500), Cabin='a'))

使用 pd.cut 获取分类分组

cut = pd.cut(df.Fare, np.arange(7) * 100, include_lowest=True)

这就够用了pd.get_dummies

pd.get_dummies(cut)

或者你可以用它来分组

gp = df.groupby(cut)