gpt4 book ai didi

python - Pandas - 基于非数值数据的数据透视表

转载 作者:太空宇宙 更新时间:2023-11-04 07:54:35 24 4
gpt4 key购买 nike

我有一个格式如下的 pandas df:

TARGET FLAG_OWN_CAR FLAG_OWN_REALTY
0 Y N
1 N N
0 Y Y
1 Y Y

我想得到输出:

        FLAG_OWN_CAR   FLAG_OWN_REALTY
TARGET Y N Y N
0 2 0 1 1
1 1 1 1 1

按照上述内容,我还想按百分比获取值,即:

        FLAG_OWN_CAR   FLAG_OWN_REALTY
TARGET Y N Y N
0 50% 0% 25% 25%
1 25% 25% 25% 25%

我尝试过数据透视表,但我无法弄明白。

最佳答案

使用melt先用 groupby reshape 形状value_countsunstack :

df = (df.melt('TARGET')
.groupby(['TARGET','variable'])['value']
.value_counts()
.unstack([1,2], fill_value=0)
.rename_axis((None, None), 1))
print (df)

FLAG_OWN_CAR FLAG_OWN_REALTY FLAG_OWN_CAR
Y N Y N
TARGET
0 2 1 1 0
1 1 1 1 1

然后按每行sum dicide:

df = df.div(df.sum(axis=1), axis=0)
print (df)

FLAG_OWN_CAR FLAG_OWN_REALTY FLAG_OWN_CAR
Y N Y N
TARGET
0 0.50 0.25 0.25 0.00
1 0.25 0.25 0.25 0.25

关于python - Pandas - 基于非数值数据的数据透视表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50560862/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com