У меня есть датафрейм с большим количеством столбцов. Один столбец может иметь NaN
. В этих случаях значение можно найти в следующем столбце.
Чтобы упростить ... Это здесь:
In[1]:
d = {'col1': [1, 2, 3],
'col2': [5, np.nan, np.nan],
'col3': [55, 9, 22]}
df = pd.DataFrame(data=d)
print(tabulate(df, headers = 'keys', tablefmt = 'psql'))
Out[1]:
+----+--------+--------+--------+
| | col1 | col2 | col3 |
|----+--------+--------+--------|
| 0 | 1 | 5 | 55 |
| 1 | 2 | nan | 9 |
| 2 | 3 | nan | 22 |
+----+--------+--------+--------+
Должно стать вот так:
In[2]:
d = {'col1': [1, 2, 3],
'col2': [5, 9, 22],
'col3': [55, 9, 22]}
df = pd.DataFrame(data=d)
print(tabulate(df, headers = 'keys', tablefmt = 'psql'))
Out[2]:
+----+--------+--------+--------+
| | col1 | col2 | col3 |
|----+--------+--------+--------|
| 0 | 1 | 5 | 55 |
| 1 | 2 | 9 | <== 9 | # col3's value copied to col2
| 2 | 3 | 22 | <== 22 | # col3's value copied to col2
+----+--------+--------+--------+
Я попробовал это (без успеха):
df.loc[ df['col2'].isna() ] = df[ df['col2'].isna() ]['col3']
Любой совет?