在 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
我有一个数据框,其中包含单列但行中有多个值。我需要从每一行正确地转置和附加数据。
数据框如下:
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