如何使用python将重复行移动到列中

如何使用python将重复行移动到列中,python,pandas,pivot,Python,Pandas,Pivot,我很难想出如何使用python实现这一点。我有下表: NAMES VALUE john_1 1 john_2 2 john_3 3 bro_1 4 bro_2 5 bro_3 6 guy_1 7 guy_2 8 guy_3 9 我想去: NAMES VALUE1 VALUE2 VALUE3 john 1 2 3 bro 4

我很难想出如何使用python实现这一点。我有下表:

NAMES    VALUE
john_1    1
john_2    2
john_3    3
bro_1     4
bro_2     5
bro_3     6
guy_1     7
guy_2     8
guy_3     9
我想去:

NAMES     VALUE1     VALUE2     VALUE3
john      1          2           3
bro       4          5           6
guy       7          8           9
我试过使用pandas,所以我首先拆分索引(名称),我可以创建新的列,但是我很难将值索引到正确的列


至少有人能给我一个解决这个问题的方向吗?我不希望有完整的代码(我知道这是不感谢),但欢迎任何帮助

拆分
名称
列后,使用来重塑数据帧

# Split Names and Pivot.
df['NAME_NBR'] = df['NAMES'].str.split('_').str.get(1)
df['NAMES'] = df['NAMES'].str.split('_').str.get(0)
df = df.pivot(index='NAMES', columns='NAME_NBR', values='VALUE')

# Rename columns and reset the index.
df.columns = ['VALUE{}'.format(c) for c in df.columns]
df.reset_index(inplace=True)
如果您想变得圆滑,可以在一行中进行拆分:

df['NAMES'], df['NAME_NBR'] = zip(*[s.split('_') for s in df['NAMES']])

这很好用!我在自己的脚本中执行的df.pivot有点错误,但是我又学到了一些我不知道的函数。非常感谢!