在 python 中将数据帧从一行排列到多列

Arranging the dataframe from one row to multiple columns in python

我有一个数据框,其中包含单列但行中有多个值。我需要从每一行正确地转置和附加数据。

数据框如下:

l1     l2
0      a:1
       b:2
       c:3
1      a:11
       b:12
       c:13
2      a:21
       b:22
       c:33

列名 l1 是索引列,名为 l2 的列包含参数名称和值。我需要考虑 l2 列并将数据框安排为所需的输出。

期望的输出如下:

a     b    c
1     2    3
11    12   13
21    22   33

我试过的代码是转置的。

df1=df.T

但它应该将每一行值转置到列中。

首先将索引l1转换为列,然后将空字符串替换为缺失值并向前填充它们,同样对于列l2使用Series.str.split to new 2 columns, last use DataFrame.pivot:

df = df.reset_index()
df['l1'] = df['l1'].replace('',np.nan).ffill()
df[['l21','l22']] = df['l2'].str.split(':', expand=True)
print (df)
  l1    l2 l21 l22
0  0   a:1   a   1
1  0   b:2   b   2
2  0   c:3   c   3
3  1  a:11   a  11
4  1  b:12   b  12
5  1  c:13   c  13
6  2  a:21   a  21
7  2  b:22   b  22
8  2  c:33   c  33

df = df.pivot('l1','l21','l22')
print (df)
l21   a   b   c
l1             
0     1   2   3
1    11  12  13
2    21  22  33