Пример #1
0
class QuarterlyAverageChangeAnalysis(object):
    def __init__(self):
        self.root_path = join(expanduser('~'), "PycharmProjects",
                              "python-vistalytics", "source")
        self.math_utils = MathUtils()
        self.file_utils = FileUtils()

    def run(self):
        path = join(self.root_path, "in", 'quarter')
        file_list = self.file_utils.get_files(path)
        for f in file_list:
            key_list = []
            change = []
            percent_change = []
            data = self.file_utils.read_csv(path, f)

            if 'TTM' in data:
                data = data.drop('TTM', 1)

            for i, v in data.iterrows():
                # Prepare Columns
                key_list.append(i)
                size_val = len(v)
                change.append(
                    self.math_utils.get_change(v[size_val - 5],
                                               v[size_val - 1]))
                percent_change.append(
                    self.math_utils.percentage_change(v[size_val - 5],
                                                      v[size_val - 1]))

            # Write csv.
            output_data = {
                'Keys': key_list,
                'Year Over Year Change': change,
                'Year Over Year Change (%)': percent_change
            }

            output_data = pd.DataFrame(output_data,
                                       columns=[
                                           'Keys', 'Year Over Year Change',
                                           'Year Over Year Change (%)'
                                       ])

            output_dir = join(
                self.root_path, 'out',
                splitext(f)[0].replace(" ", "_") + "_Quarterly_Report.csv")
            self.file_utils.write_csv(output_dir, output_data)
Пример #2
0
class YearlyAverageChangeAnalysis(object):
    def __init__(self):
        self.root_path = join(expanduser("~"), "PycharmProjects", "python-vistalytics", "source")
        self.file_utils = FileUtils()
        self.math_utils = MathUtils()

    def run(self):
        src_dir_path = join(self.root_path, "in", "annual")
        file_list = self.file_utils.get_files(src_dir_path)

        for f in file_list:
            key_list = []
            avg_change_3_years_list = []
            percentage_change_3_years_list = []
            avg_change_5_years_list = []
            percentage_change_5_years_list = []
            data = self.file_utils.read_csv(src_dir_path, f)
            if 'TTM' in data:
                data = data.drop('TTM', 1)
            for i, v in data.iterrows():
                # Prepare columns.
                size_val = len(v)
                key_list.append(i)
                avg_change_3_years_list.append(self.math_utils.average_change(v[size_val - 3:]))
                percentage_change_3_years_list.append(self.math_utils.percentage_change(v[size_val - 3],
                                                                                        v[size_val - 1]))
                avg_change_5_years_list.append(self.math_utils.average_change(v[size_val - 5:]))
                percentage_change_5_years_list.append(self.math_utils.percentage_change(v[size_val - 5],
                                                                                        v[size_val - 1]))

            # Write to csv.
            output_data = {'Keys': key_list,
                           'Average Change Over Last 3 Years': avg_change_3_years_list,
                           'Average Change Over Last 3 Years (%)': percentage_change_3_years_list,
                           'Average Change Over Last 5 Years': avg_change_5_years_list,
                           'Average Change Over Last 5 Years (%)': percentage_change_5_years_list}
            output_data_frame = pd.DataFrame(output_data, columns=['Keys', 'Average Change Over Last 3 Years',
                                                                   'Average Change Over Last 3 Years (%)',
                                                                   'Average Change Over Last 5 Years',
                                                                   'Average Change Over Last 5 Years (%)'])
            output_dir_path = join(self.root_path, "out",
                                   splitext(f)[0].replace(" ", "_") + "_Annual_Report.csv")
            self.file_utils.write_csv(output_dir_path, output_data_frame)