保留一些重复数据并添加到现有 python 数据框

Keeping some data from duplicates and adding to existing python dataframe

我有一个问题保留一些数据不重复,并想将有价值的信息添加到数据框中的新列。

import pandas as pd
data = {'id':[1,1,2,2,3],'key':[1,1,2,2,1],'value0':['a', 'b', 'x', 'y', 'a']}
frame = pd.DataFrame(data, columns = ['id','key','value0'])
print frame

产量:

    id   key   value0
0   1    1     a
1   1    1     b
2   2    2     x
3   2    2     y
4   3    1     a

期望的输出:

    key   value0_0  value0_1    value1_0  
0   1     a         b           a
1   2     x         y           None

保留 "id" 列并不重要,但有助于迭代和分组。

我认为这可以适用于您不知道一组键有多少个值的其他项目。

set_index 包括 cumcountunstack

frame.set_index(
    ['key', frame.groupby('key').cumcount()]
).value0.unstack().add_prefix('value0_').reset_index()

   key value0_0 value0_1 value0_2
0    1        a        b        a
1    2        x        y     None

我质疑您的列标签,但这是一种使用二进制的方法

frame.set_index(
        ['key', frame.groupby('key').cumcount()]
    ).value0.unstack().rename(
    columns='{:02b}'.format
).add_prefix('value_').reset_index()

   key value_00 value_01 value_10
0    1        a        b        a
1    2        x        y     None