iterrows pandas get next rows value

前端 未结 5 1059
南方客
南方客 2020-12-23 09:50

I have a df in pandas

import pandas as pd
df = pd.DataFrame([\'AA\', \'BB\', \'CC\'], columns = [\'value\'])

I want to iterate over rows in

5条回答
  •  春和景丽
    2020-12-23 10:10

    I would use shift() function as follows:

    df['value_1'] = df.value.shift(-1)
    [print(x) for x in df.T.unstack().dropna(how = 'any').values];
    

    which produces

    AA
    BB
    BB
    CC
    CC
    

    This is how the code above works:

    Step 1) Use shift function

    df['value_1'] = df.value.shift(-1)
    print(df)
    

    produces

    value value_1
    0    AA      BB
    1    BB      CC
    2    CC     NaN
    

    step 2) Transpose:

    df = df.T
    print(df)
    

    produces:

              0   1    2
    value    AA  BB   CC
    value_1  BB  CC  NaN
    

    Step 3) Unstack:

    df = df.unstack()
    print(df)
    

    produces:

    0  value       AA
       value_1     BB
    1  value       BB
       value_1     CC
    2  value       CC
       value_1    NaN
    dtype: object
    

    Step 4) Drop NaN values

    df = df.dropna(how = 'any')
    print(df)
    

    produces:

    0  value      AA
       value_1    BB
    1  value      BB
       value_1    CC
    2  value      CC
    dtype: object
    

    Step 5) Return a Numpy representation of the DataFrame, and print value by value:

    df = df.values
    [print(x) for x in df];
    

    produces:

    AA
    BB
    BB
    CC
    CC
    

提交回复
热议问题