我有以下数据框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
的任何行中存在值(任何值,但不是" Nan") ,然后复制该特定行的F
,G
,H
,I
,J
的值,并将其粘贴到A
,{分别为{1}},B
,C
和D
。因此,应复制最后三行的值。
结果数据框E
应该是这样的:
df2
任何帮助都一定会受到赞赏。
答案 0 :(得分: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