Я работаю над фреймом данных df
:
0 1 2 3 4 5 6 7
2 418 -5 -81 526 NaN NaN NaN NaN
5 415 -5 -116 487 -5 116 462 -24
7 413 -5 -81 323 NaN NaN NaN NaN
Я написал код, чтобы проверить, является ли column 4
нулевым.Если true, заполните 4
, 5
, 6
, 7
значениями 0
, 1
, 2
, 3
и добавьте 4 других столбца с такими же значениями.
rows = df.index
for i in rows1:
if np.isnan(df.loc[i,4]):
df.loc[i,4] = df.loc[i,0]
df.loc[i,5] = df.loc[i,1]
df.loc[i,6] = df.loc[i,2]
df.loc[i,7] = df.loc[i,3]
df.loc[i,8] = df.loc[i,0]
df.loc[i,9] = df.loc[i,1]
df.loc[i,10] = df.loc[i,2]
df.loc[i,11] = df.loc[i,3]
df
Заданный и желаемый результат:
0 1 2 3 4 5 6 7 8 9 10 11
2 418 -5 -81 526 418 -5 -81 526 418 -5 -81 526
5 415 -5 -116 487 -5 116 462 -24 NaN NaN NaN NaN
7 413 -5 -81 323 413 -5 -81 323 413 -5 -81 323
Мой вопрос: Как оптимизировать мой код, чтобы избежать повторения назначений.Я пытался
df.loc[i,4:7]=df.loc[i,0:3]
df.loc[i,8:11]=df.loc[i,0:3]
, но это не дает желаемого результата.