Python 数据帧重塑/重新索引

Python 数据帧重塑/重新索引,python,pandas,dataframe,Python,Pandas,Dataframe,我在python中有一个数据帧,如下所示: A B C 0 a 1 7 1 a 5 8 3 b 2 1 4 c 5 9 5 d 6 1 6 c 7 1 7 b 1 1 8 d 1 1 我希望它看起来像这样: C1 c2 a B 1 5 a C 7 8 b B 2 1 b C 1 1 c B 5 7 c C 9 1 d B 6 1 d C 1 1 您可以创建一个新列来标识每个唯一a中的行号,然后使用unstack()函数将数据帧转换为宽格式,行号沿列方向分布: #

我在python中有一个数据帧,如下所示:

  A B C
0 a 1 7
1 a 5 8
3 b 2 1
4 c 5 9
5 d 6 1
6 c 7 1
7 b 1 1
8 d 1 1
我希望它看起来像这样:

    C1 c2 
a B 1  5
a C 7  8
b B 2  1
b C 1  1
c B 5  7
c C 9  1
d B 6  1
d C 1  1

您可以创建一个新列来标识每个唯一
a
中的行号,然后使用
unstack()
函数将数据帧转换为宽格式,行号沿列方向分布:

# create a row id column for each unique value in A
df['X'] = 'X' + (df.groupby('A', group_keys=False).cumcount() + 1).astype(str)    

# transform the data frame to wide format with the row id spread along columns
df.set_index(['X', 'A']).stack().unstack(level=0)

您可以创建一个新列,用于标识每个唯一
a
中的行号,然后使用
unstack()
函数将数据帧转换为宽格式,行号沿列方向展开:

# create a row id column for each unique value in A
df['X'] = 'X' + (df.groupby('A', group_keys=False).cumcount() + 1).astype(str)    

# transform the data frame to wide format with the row id spread along columns
df.set_index(['X', 'A']).stack().unstack(level=0)