gpt4 book ai didi

python - Pandas 按名称将几组列融化成多个目标列

转载 作者:太空狗 更新时间:2023-10-29 18:19:48 24 4
gpt4 key购买 nike

我想将数据框的几组列融合到多个目标列中。类似问题Python Pandas Melt Groups of Initial Columns Into Multiple Target Columnspandas dataframe reshaping/stacking of multiple value variables into seperate columns .但是我需要通过列名而不是索引位置明确地执行此操作。

import pandas as pd
df = pd.DataFrame([('a','b','c',1,2,3,'aa','bb','cc'), ('d', 'e', 'f', 4, 5, 6, 'dd', 'ee', 'ff')],
columns=['a_1', 'a_2', 'a_3','b_1', 'b_2', 'b_3','c_1', 'c_2', 'c_3'])
df

原始数据框:

    id   a_1  a_2  a_3  b_1  b_2  b_3  c_1  c_2  c_3
0 101 a b c 1 2 3 aa bb cc
1 102 d e f 4 5 6 dd ee ff

目标数据框

     id   a   b   c
0 101 a 1 aa
1 101 b 2 bb
2 101 c 3 cc
3 102 d 4 dd
4 102 e 5 ee
5 102 f 6 ff

非常感谢有关此方法的建议。

最佳答案

有一种更有效的方法可以解决这类涉及熔化多组不同色谱柱的问题。 pd.wide_to_long 正是为这些情况而构建的。

pd.wide_to_long(df, stubnames=['a', 'b', 'c'], i='id', j='dropme', sep='_')\
.reset_index()\
.drop('dropme', axis=1)\
.sort_values('id')

id a b c
0 101 a 1 aa
2 101 b 2 bb
4 101 c 3 cc
1 102 d 4 dd
3 102 e 5 ee
5 102 f 6 ff

关于python - Pandas 按名称将几组列融化成多个目标列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38862832/

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