为每个重复变量添加一个新列

时间:2018-05-09 20:40:54

标签: python python-3.x pandas numpy

我正在尝试转换以下数据框

df = pd.DataFrame ({'ID' : [125,125,130,130,130],
                     'X' : [2,1,2,1,3]})

df

ID     X
125    2
125    1
130    2
130    1
130    3

使用具有以下条件的新列(此df是我的洞数据集的一个示例,仅用于说明我的问题):      为包含值X

的每个重复ID添加新列
df

ID     X  X_1  X_2
125    2   1   NaN
130    2   1    3

1 个答案:

答案 0 :(得分:2)

In [30]: (df.assign(col=df.groupby('ID').cumcount())
            .pivot_table(index='ID', columns='col', values='X', fill_value=0)
            .add_prefix('X_')
            .reset_index()
            .rename_axis(None,1))
Out[30]:
      ID  X_0  X_1  X_2
0    125    2    1    0
1    130    2    1    3