I .csv
Dateien in mehreren Ordnern haben, die wie folgt aussehen:Merge jeder Datenrahmen in einem Ordner
File1
Count 2002_Crop_1 2002_Crop_2 Ecoregion
20 Corn Soy 46
15 Barley Oats 46
Datei 2
Count 2003_Crop_1 2003_Crop_2 Ecoregion
24 Corn Soy 46
18 Barley Oats 46
für jeden Ordner Ich möchte alle fusionieren der Dateien innerhalb.
Meine gewünschte Ausgabe wird in etwa so aussehen:
Crop_1 Crop_2 2002_Count 2003_Count Ecoregion
Corn Soy 20 24 46
Barley Oats 15 18 46
In Wirklichkeit gibt es 10 Dateien in jedem Ordner, nicht nur 2, das muss zusammengeführt werden.
Ich verwende diesen Code ab sofort:
import pandas as pd, os
#pathway to all the folders
folders=r'G:\Stefano\CDL_Trajectory\combined_eco_folders'
for folder in os.listdir(folders):
for f in os.listdir(os.path.join(folders,folder)):
dfs=pd.read_csv(os.path.join(folders,folder,f)) #turn each file from each folder into a dataframe
df = reduce(lambda left,right: pd.merge(left,right,on=[dfs[dfs.columns[1]], dfs[dfs.columns[2]]],how='outer'),dfs) #merge all the dataframes based on column location
aber zurück: TypeError: string indices must be integers, not Series