代码之家  ›  专栏  ›  技术社区  ›  N.Varela

Python Pandas:如何根据另一列中的字符串向列添加索引?[副本]

  •  0
  • N.Varela  · 技术社区  · 6 年前

    import pandas as pd
    df = pd.DataFrame(
        [['A', 'X', 3], ['A', 'X', 5], ['A', 'Y', 7], ['A', 'Y', 1],
         ['B', 'X', 3], ['B', 'X', 1], ['B', 'X', 3], ['B', 'Y', 1],
         ['C', 'X', 7], ['C', 'Y', 4], ['C', 'Y', 1], ['C', 'Y', 6]],
        columns=['c1', 'c2', 'v1'])
    def callback(x):
        x['seq'] = range(1, x.shape[0] + 1)
        return x
    df = df.groupby(['c1', 'c2']).apply(callback)
    print df
    

    要做到这一点:

       c1 c2  v1  seq
    0   A  X   3    1
    1   A  X   5    2
    2   A  Y   7    1
    3   A  Y   1    2
    4   B  X   3    1
    5   B  X   1    2
    6   B  X   3    3
    7   B  Y   1    1
    8   C  X   7    1
    9   C  Y   4    1
    10  C  Y   1    2
    11  C  Y   6    3
    

    有没有办法避免回调?

    0 回复  |  直到 7 年前