gpt4 book ai didi

Pandas - Pivot/stack/unstack/melt

转载 作者:行者123 更新时间:2023-12-05 00:51:18 24 4
gpt4 key购买 nike

我有一个如下所示的数据框:

<头>
名称 值 1 值 2
A 100 101
A 100 102
A 100 103
B 200 201
B 200 202
B 200 203
C 300 301
C 300 302
C 300 303

我正在努力解决这个问题:

<头>
名称 值 1 值 2 值 3 值 4 值 5 值 6
A 100 101 100 102 100 103
B 200 201 200 202 200 203
C 300 301 300 302 300 303

这是我迄今为止尝试过的;dataframe.stack()dataframe.unstack()dataframe.melt(id_vars=['name'])

我需要通过确保转置数据;

  1. 第一行保持原样,但与相同名称关联的每个后续值都应转置为列。
  2. 虽然第二个值 B(for.ex)应将其关联值转换为 A 列值下的新值,但不应完全形成单独的值。

最佳答案

试试:

def fn(x):
vals = x.values.ravel()
return pd.DataFrame(
[vals],
columns=[f"value {i}" for i in range(1, vals.shape[0] + 1)],
)


out = (
df.set_index("name")
.groupby(level=0)
.apply(fn)
.reset_index()
.drop(columns="level_1")
)
print(out.to_markdown())

打印:

<头>
名称 值 1 值 2 值 3 值 4 值 5 值 6
0 A 100 101 100 102 100 103
1 B 200 201 200 202 200 203
2 C 300 301 300 302 300 303

关于Pandas - Pivot/stack/unstack/melt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72320964/

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