Search code examples
pythonpython-3.xnumpydata-processing

add my function data column into original data in python


I am trying to add my function value into my dataset column. I have eight columns which are:

'DATE','Max_R','Total_R','Avg_R','MAX_T','TOTAL_T','AVG_T'

Then I divided my DATE column into three columns as Day, Month and year respectively. Here is my code in python:

import pandas as pd
import numpy as np

df=pd.read_csv('moving_average_calculation.csv', sep=',')
#df = pd.DataFrame(columns=['DATE','Max_R','Total_R','Avg_R','MAX_T','TOTAL_T','AVG_T'])
df = pd.DataFrame(pd.date_range('1-Jan-08', periods=2558),columns=['DATE'])


def f(df):
    df = df.copy()
    df['Day'] = pd.DatetimeIndex(df['DATE']).day
    df['Month'] =pd.DatetimeIndex(df['DATE']).month
    df['Year'] = pd.DatetimeIndex(df['DATE']).year
    return df

print(f(df).head(10))

Now I want to get my columns which would have these columns:

'Day','Month','Year','Max_R','Total_R','Avg_R','MAX_T','TOTAL_T','AVG_T'

How can I do this? Thank you.


Solution

  • Your question is a bit unclear, as you define df twice (+1 in a comment), but if I understand correctly (that is: you already have 'DATE' in the .csv file) this may help:

    df = pd.read_csv('moving_average_calculation.csv', sep=',')
    
    df['Day'] = pd.DatetimeIndex(df['DATE']).day
    df['Month'] = pd.DatetimeIndex(df['DATE']).month
    df['Year'] = pd.DatetimeIndex(df['DATE']).year
    
    df.drop('DATE', axis=1, inplace=True)
    
    df = df[['Day','Month','Year','Max_R','Total_R','Avg_R','MAX_T','TOTAL_T','AVG_T']]