如何基于其值来划分Pandas列?

时间:2016-10-13 23:39:49

标签: pandas slice

我正在玩Titanic的幸存者数据库,我创建了一个单独的数据框,其中仅包含“Fare”和“Cabin”列。 “票价”列已排序,数据框如下所示:

      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,依此类推。我和群岛一起玩,但我无处可去。我很难过。谢谢。

2 个答案:

答案 0 :(得分:1)

你可以写一下:

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

等等

答案 1 :(得分:1)

考虑df

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

使用pd.cut获取分类groupint

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

这足以使用pd.get_dummies

pd.get_dummies(cut)

或者你可以用它来分组

gp = df.groupby(cut)