Я новичок в python и пытаюсь получить% различий между пользователями каждую неделю, начиная с самой старой. Итак, пытаясь вычислить так (этот расчет взят из Таблицы, но я хочу, чтобы python делал аналогично):
3to2WeeksA go разница:
IF [Users3weeksAgo] != 0 THEN ([Users2weeksAgo]-[Users3weeksAgo])/[Users3weeksAgo]
END
input.csv:
id ThisWeekUsers LastWeekUsers Users2weeksAgo Users3weeksAgo
1 91 20 8 15
2 4 1 0 0
3 4 1 3 14
...
Я не смог получить строго отформатированный вывод. Мне нужно, чтобы мои результаты отображались ниже: Output.csv
id ThisWeekUsers LastWeekUsers Users2weeksAgo Users3weeksAgo 3to2WeeksAgo 2toLastWeek LastToThisWeek
1 91 20 8 15 -46.7% 150.0% 355.0%
2 4 1 0 0 300.0%
3 4 1 3 14 -78.6% -66.7% 300.0%
...
Мой код:
import pandas as pd
df = pd.read_csv('path/to/my/input.csv')
df['3to2WeeksAgo'] = df['Users2weeksAgo']-df['Users3weeksAgo']/df['Users3weeksAgo']
df.to_csv('path/to/my/output.csv')
Кроме того, я хочу убедиться, что в NaN или inf нет значений мой вывод и сохранить формат строго как 00.0
Это результаты при сравнении 3 недели go с 2 неделями go с кодом выше:
Приведенные выше результаты должны показывать:
3to2WeeksAgo
-46.7%
-78.6%
Спасибо за вашу помощь заранее!
РЕДАКТИРОВАТЬ:
Спасибо за вашу помощь Kranthi! Я запустил этот код, и он, кажется, работает. Однако у меня есть дополнительный вопрос. Как я могу предотвратить показ 0.0 при сравнении 0 из одной недели с 0 в другой неделе. То же самое для значения 'inf'. Не могли бы вы помочь мне не получить значения для этих случаев? См. Ниже: