[введите описание изображения здесь]
ИЗОБРАЖЕНИЕ 2 (результаты)
введите описание изображения здесь
2 Я работаю с манипулированием данными в csvs, используя python + pandas .
Пример # s
PL T
0,569999695
0,960002899
1,729999542
1,590000153
1.450000763
1,530002594
1,530002594
1.770000458
0,890003204
0,490001678
1.11000061
1.340000153
2,390003204
2,390003204
2,470001221
2.760002136
3.200000763
2.880001068
2,479999542
2.479999542
3.100002289
* * 1,269996643 тысяча сорок-девять
1,269996643
1.590000153
2.13999939
Я использовал операторы if в прошлом, однако это очень специфический оператор, и я не могу понять, что синтаксис работает правильно.
Если вы посмотрите на код, я хочу, чтобы столбец 'T
' вычислялся так
в строке уже есть несколько чисел из предыдущего кода, а остальные пустые.
Работающий код будет гипотетически проходить по строкам в столбце t.
Первые строки в основном пустые, поэтому они пропускаются, пока не попадут в строку с номером. if(df['T'].iat[x-1] != "")
как только он попадет в строку с номером в нем, скрипт проверит логическое (если ячейка в строке рядом с ней больше, чем ячейка над ней) (если
df['PL'].iat[x] > df['PL'].iat[x-1]
Если это логическое значение истинно, оно напечатает следующую ячейку в столбце df['T'].iat[x] = df['PL'].iat[x]
и если логическое значение ложно, то ячейка остается пустой
Я думаю, что реальная проблема в том, как он повторяется после этого шага. Прямо сейчас я думаю, что это возвращение и просто проверка последнего оператора if снова, но я хочу, чтобы он повторял их все для каждой строки.
Он должен прочитать столбец выше, чтобы увидеть, является ли он пустым или заполненным, а затем снова пройти через операторы if, печатая только число, когда все выполнены.
Я пробовал несколько соглашений, а также использование и / или заявления. Я просто не могу заставить его напечатать правильные результаты.
import pandas as pd
import csv
df=pd.read_csv(filename)
len1 = len(df)
for x in range(len3):
if (df['T'].iat[x-1] != ""):
if(df['T'].iat[x] == ""):
if (df['PL'].iat[x] > df['PL'].iat[x-1]):
df['T'].iat[x] = df['PL'].iat[x]
Код не отображает сообщения об ошибках, однако он не печатает правильные результаты. Пожалуйста, дайте мне знать, если я могу объяснить это лучше или у кого-нибудь есть какие-либо идеи. Спасибо!