Рассчитать столбцы из нескольких файлов CSV и сохранить результаты в новый файл - PullRequest
0 голосов
/ 18 февраля 2020

Я новичок в Python и пытаюсь сделать следующее с python / pandas.

У меня есть четыре CSV-файла, которые выглядят так (единственное отличие - это значение даты в первом столбец):

First_week.csv:

     date       id   name   total_unitCount   total_orderCount   total_invoiceCount
  2020-02-12     1   Guitar        300              600                   500
  2020-02-12     2   Drums         500              600                   500
  2020-02-12     3   Piano         700              1000                  400

Second_week.csv:

     date       id   name   total_unitCount   total_orderCount   total_invoiceCount
  2020-02-05     1   Guitar        300              800                   500
  2020-02-05     2   Drums         500              300                   500
  2020-02-05     3   Piano         700              350                  400

Мне нужно рассчитать разницу в% между двумя числами в каждом файле CSV / между каждой неделей (first_week.total_orderCount против second_week.total_orderCount, второй против третьего, третий против четвертого):

Пример расчета: Difference = ((total_orderCount[where date is 2020-02-12] - total_orderCount[where date is 2020-12-05] ) / Units[where date is 2020-12-05]) * 100%

Затем сохраните результаты в новый файл CSV для каждого week (здесь я предоставил результаты только для week1vsweek2):

    id   name   %difference_week1vsweek2  %difference_week2vsweek3  %difference_week3vsweek4
    1   Guitar             -0.25                          
    2   Drums                1                       
    3   Piano               0.65                      

Может ли кто-нибудь помочь или дать мне пошаговые инструкции? Заранее спасибо!

1 Ответ

1 голос
/ 18 февраля 2020

Псевдокод о том, как выполнять вычисления столбцов из нескольких файлов CSV и сохранять результаты в новый файл, используя pandas в python, равен

import pandas as pd
df1 = pd.read_csv('First.csv')
df2 = pd.read_csv('Second.csv')
output_df = pd.DataFrame(columns = ["col1", "col2"])
output_df['result'] = df1['col2'] -df2['col2'] # some column calculation
df3.to_format("output.format")

Здесь приведен фактический код для данного пример в вопросе

#import libraries
import pandas as pd

#read files
df1 = pd.read_csv('First_week.csv')
df2 = pd.read_csv('Second_week.csv')

#Create new file and save results
column_names = ["id", "name"]
df3 = pd.DataFrame(columns = column_names)
df3[['id', 'name']] = df1[['id', 'name']]
df3['%difference_week1vsweek2'] = (df1['total_orderCount']-df2['total_orderCount'])/df2['total_orderCount']*100
print(df3)

df3.to_csv("output.csv")

Надеюсь, это поможет.

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