Pandas Q-Cut by Row



我有一个名为"df"的数据帧,它有一个日期时间索引和四列:

A    B   C   D
1/1/2020    0.1 0.3 0.2 0.2
1/2/2020    0.3 0.1 0.3 0.3
1/3/2020    0.2 0.2 0.3 0.1
1/4/2020    0.1 0.1 0.1 0.3

我想把数据分成4个"离散化"的分位数。

如果我想为专栏"A"做这件事,我所需要做的就是使用Pandas的q-cut函数,如下所示:

df["A"] = pd.qcut(df["A"], 4)

然而,问题是我想为每个日期创建分位数,即将数据划分为每行(NOT列(的4个分位数。我该怎么做?

您可以将.applyaxis=1参数一起使用:

df.apply(lambda x: pd.qcut(x, 4, duplicates='drop'), axis=1)

最新更新