Сводка
0 101 2017/11 -9999.0 -7.60 -4.00 -9999.0 -9999.0 -4.00 -0.22 1.76 4.64 6.98 8.96 12.56 15.98 19.58 22.46 25.34 28.40
1 101 2017/11 -9999.0 -7.78 -4.36 -9999.0 -9999.0 -4.36 -0.22 1.76 4.64 6.80 8.78 12.56 15.98 19.58 22.46 25.16 28.22
2 101 2017/11 -9999.0 -7.60 -4.18 -9999.0 -9999.0 -4.18 -0.22 1.76 4.46 6.80 8.78 12.56 15.98 19.58 22.46 25.16 28.22
3 101 2017/11 -9999.0 -7.96 -5.26 -9999.0 -9999.0 -5.26 -0.40 1.76 4.46 6.80 8.60 12.38 15.98 19.58 22.46 25.16 28.22
4 101 2017/11 -9999.0 -6.88 -4.36 -9999.0 -9999.0 -4.36 -0.40 1.58 4.46 6.80 8.60 12.38 15.98 19.58 22.46 25.16 28.22
5 101 2017/11 20.30 35.06 35.06 35.06 35.06 35.06 35.06 35.06 35.06 35.06 35.06 35.06 35.06 35.06 35.06 35.06 35.06
6 101 2017/11 19.76 35.06 35.06 35.06 35.06 35.06 35.06 35.06 35.06 35.06 35.06 35.06 35.06 35.06 35.06 35.06 35.06
7 101 2017/11 20.30 35.06 35.06 35.06 35.06 35.06 35.06 35.06 35.06 35.06 35.06 35.06 35.06 35.06 35.06 35.06 35.06
Мне нужно иметь возможность удалить данные из столбцов, в которых соседний столбец имеет одинаковое точное число. Таким образом, в этом примере столбцы 5, 6 и 7 будут выглядеть следующим образом:
5 2017/11 20.30 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
6 2017/11 19.76 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
7 2017/11 20.30 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
То, что я пробовал
Множество ответов, которые я нашел, похоже, преобразуются и затем указывают на логическое значениестоимость.
я рассматривал что-то вроде этого псевдокода, чтобы проверить соседние столбцы
for i, row in data.iterrows():
rowvar = i
if data.iloc[i] == rowvar:
data.iloc[i] = np.nan
, но это, очевидно, не работает.
Фактически
ValueError: Location based indexing can only have [integer, integer slice (START point is INCLUDED, END point is EXCLUDED), listlike of integers, boolean array] types
Есть ли простой способ сделать это, возможно, более Pythonic / Pandas?