gpt4 book ai didi

python - 反转交叉表或频率表

转载 作者:太空宇宙 更新时间:2023-11-03 15:31:01 26 4
gpt4 key购买 nike

假设我有一个频率表 df 定义为:

dat = [[0, 2, 1], [1, 0, 3], [4, 1, 1]]
idx = pd.Index([*'abc'], name='One')
col = pd.Index([*'xyz'], name='Two')
df = pd.DataFrame(dat, idx, col)

df

Two x y z
One
a 0 2 1
b 1 0 3
c 4 1 1

我如何“反转”它以获得数据帧 pre_df

   One Two
0 a y
1 a y
2 a z
3 b x
4 b z
5 b z
6 b z
7 c x
8 c x
9 c x
10 c x
11 c y
12 c z

这样 pd.crosstab(pre_df.One, pre_df.Two) 会让我回到 df

Two  x  y  z
One
a 0 2 1
b 1 0 3
c 4 1 1

最佳答案

尝试堆叠重复:

s = df.stack()
s.index.repeat(s).to_frame().reset_index(drop=True)

输出:

   One Two
0 a y
1 a y
2 a z
3 b x
4 b z
5 b z
6 b z
7 c x
8 c x
9 c x
10 c x
11 c y
12 c z

关于python - 反转交叉表或频率表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57861649/

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