Home > OS >  Appending dataframes into one
Appending dataframes into one

Time:02-21

I am working on hundreds of excel files through a for loop and generating a new dataframe from each file. At the end, I need to append all the dataframes into one, where only first file should keep the headers. I am using below code. Kindly help me-

folder = r"C:\Users\Mohit\ALGO_TRADING\Play"

for file in os.listdir(folder):
    filepath = os.path.join(folder, file)
    data = pd.read_csv (filepath)
    data['Close_EMA_20'] = ta.EMA(data['Close'],20)
    data['Close_EMA_5'] = ta.EMA(data['Close'],5)
    data ['Position'] = np.nan
    pd.options.mode.chained_assignment = None
    
    for x in range (len (data)):
        if data['Close_EMA_5'].iloc[x] < data['Close_EMA_20'].iloc[x]:
            data ['Position'].iloc[x] = -1
        elif data['Close_EMA_5'].iloc[x] > data['Close_EMA_20'].iloc[x]:
            data ['Position'].iloc[x] = 1
        else:
            data ['Position'].iloc[x] = 0
            
        position_data = data[data['Position']!=0] #creating a new dataframe every after a loop
    
    Position_Data = position_data.append(position_data) #appending all dataframe into one. PROBLEM IS HERE
    
Position_Data.to_csv(r"C:\Users\Mohit\ALGO_TRADING\mohit.csv")

CodePudding user response:

To append two dataframes, use pd.concat([df1, df2])

CodePudding user response:

If all data.frames have the same header, you can use

do.call(rbind, position_data)
  • Related