2017-10-11 18 views
0

我有以下數據幀df1移位值在一列中

 A  B C D E F G H I J 
    0 1 11 a XX 50 Nan Nan Nan Nan Nan 
    1 2 12 b YY 10 Nan 1 Nan Nan Nan 
    2 1 11 c ZZ 70 Nan Nan 11 12 56 
    3 Nan Nan Nan Nan 0 6 10 c DD 45 
    4 3  7 e MM 12 1 7 d LL 64 
    5 Nan Nan Nan Nan 2 89 Nan f KK 13 

我想建造所得數據幀df2以這樣的方式,如果一個值出現在任何一行屬性F(任何價值,但不是「南」),然後複製的FGHIJ的值適用於特定的行分別將其粘貼在ABCDE。因此應該複製最後三行的值。

得到的數據幀df2應該有一些事情是這樣的:

 A  B C D E F G H I J 
    0 1 11 a XX 50 Nan Nan Nan Nan Nan 
    1 2 12 b YY 10 Nan 1 Nan Nan Nan 
    2 1 11 c ZZ 70 Nan Nan 11 12 56 
    3 6 10 c DD 45 6 10 c DD 45 
    4 1  7 d LL 64 1 7 d LL 64 
    5 89 Nan f KK 13 89 Nan f KK 13 

任何幫助,將肯定讚賞。

回答

0
In [102]: df.loc[df.F.notnull(), list('ABCDE')] = \ 
       df.loc[df.F.notnull(), list('FGHIJ')].values 

In [103]: df 
Out[103]: 
     A  B C D E  F  G H I  J 
0 1.0 11.0 a XX 50 NaN NaN NaN NaN NaN 
1 2.0 12.0 b YY 10 NaN 1.0 NaN NaN NaN 
2 1.0 11.0 c ZZ 70 NaN NaN 11 12 56.0 
3 6.0 10.0 c DD 45 6.0 10.0 c DD 45.0 
4 1.0 7.0 d LL 64 1.0 7.0 d LL 64.0 
5 89.0 NaN f KK 13 89.0 NaN f KK 13.0