我有一个名为"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个分位数。我该怎么做?
您可以将.apply
与axis=1
参数一起使用:
df.apply(lambda x: pd.qcut(x, 4, duplicates='drop'), axis=1)