gpt4 book ai didi

python - 如何在 Python 中{pivot|denormalize|manipulate} CSV 表

转载 作者:太空狗 更新时间:2023-10-30 00:37:47 24 4
gpt4 key购买 nike

抱歉标题乱七八糟,我不知道如何表达这个问题。

假设我有一个表,其中前三列是 foo bar 和 baz。然后后面有一些任意列。我想操纵表格,使这些任意列都折叠在名为 num 的列下。

一个例子使这个更清楚

foo, bar, baz, 100, 101, 102, 103, 104,
1, 1, 1, 10, 11, 12, 13, 14,
1, 1, 2, 15, 16, 17, 18, 19,
1, 2, 1, 20, 21, 22, 23, 24,

此输入应转换为:

num, foo, bar, baz, value,
100, 1, 1, 1, 10,
100, 1, 1, 2, 15,
100, 1, 2, 1, 20,
101, 1, 1, 1, 11,
101, 1, 1, 2, 16,
101, 1, 2, 1, 21,
102, 1, 1, 1, 12,
102, 1, 1, 2, 17,
102, 1, 2, 1, 22,
...

我编写了一个自定义 Python 解决方案来执行此操作。这并不难,但我觉得这是在重新发明轮子。

有没有办法使用像 pandas 或其他一些表操作模块这样的库来实现这一点?

最佳答案

使用 pandas.melt :

res = pd.melt(df, id_vars=['foo', 'bar', 'baz'])

print(res)

foo bar baz variable value
0 1 1 1 100 10
1 1 1 2 100 15
2 1 2 1 100 20
3 1 1 1 101 11
4 1 1 2 101 16
5 1 2 1 101 21
6 1 1 1 102 12
7 1 1 2 102 17
8 1 2 1 102 22
9 1 1 1 103 13
10 1 1 2 103 18
11 1 2 1 103 23
12 1 1 1 104 14
13 1 1 2 104 19
14 1 2 1 104 24

关于python - 如何在 Python 中{pivot|denormalize|manipulate} CSV 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51068259/

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