Python 基于带有Pandas的groupby将列拆分为多个列

Python 基于带有Pandas的groupby将列拆分为多个列,python,pandas,Python,Pandas,我刚刚开始使用Python,我遇到了一个与我正在使用的数据集相关的问题 我有以下数据集: C1 C2 C3 C4 C5 C6 99 069 99002068 3348117 3230802 T6 99 069 99002063 4599974 178885 T4 99 069 99002063 4599974 4606066 T4 99 069 99002063 4599974 2

我刚刚开始使用Python,我遇到了一个与我正在使用的数据集相关的问题

我有以下数据集:

    C1  C2  C3          C4      C5      C6
    99  069 99002068    3348117 3230802 T6
    99  069 99002063    4599974 178885  T4
    99  069 99002063    4599974 4606066 T4
    99  069 99002063    4599974 236346  T4
    99  069 99002063    4599974 310114  T4
我需要根据C1、C2、C3、C4、C6列的分组,将C5列转置为多个列

到目前为止,我编写的代码如下:

#加载插件
作为pd进口熊猫
#导入CSV
数据=pd.read\U csv(
“C:/Users/mcatoogno/Desktop/lista_collegamenti_onb.csv”,
sep=“;”,
标题=无,
dtype=str,
usecols=[0,1,2,3,4,5],
名称=[“C1”、“C2”、“C3”、“C4”、“C5”、“C6”]
)
#排序值
dataSort=data.sort_值([“C1”、“C2”、“C3”、“C4”])
#基于分组函数的列转置
dataTranspose=dataSort.groupby([“C1”、“C2”、“C3”、“C4”、“C6”])[“C5”]。应用(列表)
使用上面的代码,结果是

    C1   C2  ...              C6      C5
    99  000  ...  09900000001100      [102995, 102997, 102996]
    99  000  ...  09900000001135      [103042]
我不知道如何将列C5拆分为多个列,每个列的名称为CN_1、CN_2、…、CN_x

我可以使用哪个python函数


提前谢谢

您可以通过以下方式为每个组的连续值计数创建帮助器系列:
MultiIndex
,并通过以下方式重塑:

您的解决方案应更改为每个构造函数创建新的
DataFrame

dataTranspose = dataSort.groupby(["C1", "C2", "C3", "C4", "C6"])["C5"].apply(list)

df = (pd.DataFrame(dataTranspose.values.tolist(), index = dataTranspose.index)
        .add_prefix('Cn_')
        .reset_index())
print (df)
   C1  C2        C3       C4  C6     Cn_0       Cn_1      Cn_2      Cn_3
0  99  69  99002063  4599974  T4   178885  4606066.0  236346.0  310114.0
1  99  69  99002068  3348117  T6  3230802        NaN       NaN       NaN
可能重复的
dataTranspose = dataSort.groupby(["C1", "C2", "C3", "C4", "C6"])["C5"].apply(list)

df = (pd.DataFrame(dataTranspose.values.tolist(), index = dataTranspose.index)
        .add_prefix('Cn_')
        .reset_index())
print (df)
   C1  C2        C3       C4  C6     Cn_0       Cn_1      Cn_2      Cn_3
0  99  69  99002063  4599974  T4   178885  4606066.0  236346.0  310114.0
1  99  69  99002068  3348117  T6  3230802        NaN       NaN       NaN