如何根据值划分 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)
我正在玩泰坦尼克号的幸存者数据库,我创建了一个单独的数据框,其中仅包含 "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)