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

时间:2016-03-10 21:03:50

标签: python pandas pivot

我正在努力想弄清楚如何用python做这件事。我有下表:

GET /ask_user_id   <- this is you going to localhost:3000/ask_user_id in browser
POST /user_infos   <- this is you submitting the data to the URL specified in the action attribute of your form.

我想去:

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

我尝试过使用pandas,所以我首先拆分索引(NAMES),然后我可以创建新列,但是我无法将值索引到右列。

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

1 个答案:

答案 0 :(得分:0)

分割NAMES列后,使用.pivot重新整形数据框。

# 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']])