Я новичок в Python и не могу справиться с одним из моментов моего проекта, поэтому я был бы рад, чтобы ты помог мне :)Python - Вычисление второго столбца первого в файле
Давайте-х представьте себе, у меня есть * .txt файл с только один столбец, который выглядит как:
Column-1
row-1 0
row-2 25.00
row-3 27.14
row-4 29.29
row-5 31.43
row-6 33.57
* Колонка со строками добавляется сюда, чтобы упростить объяснение.
Мне нужно вычислить второй столбец, который принимает в качестве входных данных из столбца-1 и выводит результат вычитания этого значения строки из предыдущего (если значение строки-1 (столбец-1) равно 0, чем это должно быть 0 в строке-1 (колонка-2)). Это должно быть, как:
- строка-2 (колонок-2) = строка-2 (колонок-1) - строка-1 (колонок-1)
- строки-3 (колонок-2) = строка -3 (столбец-1) - строка-2 (колонка-1) и т. Д.
Позвольте мне показать вам, как выходной файл Шоуда быть как:
Column-1 Column-2
row-1 0 0
row-2 25.00 25.00
row-3 27.14 2.14
row-4 29.29 2.15
row-5 31.50 2.21
row-6 33.57 2.07
Сейчас я только здесь с программированием:
import sys
with open('file.txt', "r") as f:
sys.stdout = open('%s (calc).txt' % f.name, 'a')
for line in f:
column = line.strip().split()
Column_1 = float(column[0])
column.extend([None])
Интересно, что делать дальше. Может быть, numpy подходит для этой задачи? Я не силен в этом (в основном, я вообще этого не знаю), должен ли я это узнать?
В любом случае, я был бы очень благодарен вам за вклад.
Посмотрите на Pandas 'roll_apply: http://pandas.pydata.org/pandas-docs/stable/comput.html#moving-rolling-statistics-moments – asiviero