Как добавить дату в цикл for без операторов if / else - PullRequest
0 голосов
/ 18 июня 2019

Моя задача - создать скрипт Python, который анализирует записи в моем pybank.csv для вычисления каждого из следующих параметров: https://i.stack.imgur.com/MzM4N.png

Общее количество месяцев, включенных в набор данных.«Прибыль / убытки» за весь период Среднее значение изменений в «Прибыль / убытки» за весь период. Наибольшее увеличение прибыли (дата и сумма) за весь период. Наибольшее уменьшение убытков (дата и сумма) за период.весь период

Expected Results: 

Financial Analysis
----------------------------
Total Months: 86
Total: $38382578
Average  Change: $-2315.12
Greatest Increase in Profits: Feb-2012 ($1926159)
Greatest Decrease in Profits: Sep-2013 ($-2196167)

Не удается добавить конкретную дату.

Я пытался использовать вложенные циклы, библиотеку numpy и сына на ...

import statistics 
import numpy as np

df = pd.read_csv("./pybank.csv")

f = open('results.txt','w+')

numMonths = df['Date'].count()
profit = df['Profit/Losses'].sum()
increaseProfit = df['Profit/Losses'].max()

profitLossesList = list(df['Profit/Losses'])
dateProfitLossesList = df['Date']

changeList = []
counter = 0

numDB = np.array(profitLossesList)
dateNp = np.array(dateProfitLossesList)
date = ""

for i in range(len(df)-1):
    curr = profitLossesList[i]
    currDown = profitLossesList[i+1]
    changeList.append(currDown-curr)
    counter = sum(df['Profit/Losses'])
    minChange = min(changeList)
    maxChange = max(changeList)  
    avgChance = round(np.mean(changeList),2)








#Escribimos en el documento results.txt los resultados
f.write(f"Financial Analysis\n----------------------------------\n")
f.write(f"Your profit is: ${profit}\n")
f.write(f"Total Months {numMonths}\n")
f.write(f"Average  Change: ${avgChance}\n")
f.write(f"Greatest Increase in Profits: (${maxChange})\n")
f.write(f"Greatest Decrease in Profits: (${minChange})\n")

print(f"\nFinancial Analysis\n----------------------------------\n")
print(f"Your profit is: ${profit}")
print(f"Total Months {numMonths}")
print(f"Average  Change: ${avgChance}")
print(f"Greatest Increase in Profits: (${maxChange})")
print(f"Greatest Decrease in Profits: (${minChange})")



#Cerramos documento
f.close()
Actual Results: 

Financial Analysis
----------------------------------

Your profit is: $38382578
Total Months 86
Average  Change: $-2315.12
Greatest Increase in Profits: ($1926159)
Greatest Decrease in Profits: ($-2196167)```



1 Ответ

0 голосов
/ 18 июня 2019

Попробуйте получить максимальный месяц изменения:

maxChangeMonth = dateProfitLossesList[changeList.index(max(changeList))]

для минимальной замены в функции max.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...