Ich lese in mehreren großen (~ 700mb) CSV-Dateien in einen Datenrahmen zu konvertieren, die alle in einer einzigen CSV kombiniert werden. Im Moment ist jeder CSV Index durch die date
Spalte in jedem CSV. Alle CSVs haben überlappende Daten, verfügen jedoch über eindeutige Testorte. Jede CSV wird nach ihrem Testort benannt (z. B. ber.csv und alt.csv für BER- und ALT-Teststandorte). Wie kann ich so multi-indexieren? Im Moment habe ich:Add Spalte zu Pandas Datenrahmen für Multi-Index
def openFile(filesToProcess):
df1 = pd.DataFrame()
counter = 0
for input in filesToProcess:
base = os.path.splitext(basename(input))[0]
print "Working on %s" % base
with open(input, 'r') as input_file:
#row_count = sum(1 for row in input_file)
if counter == 0:
df1 = createDataFrame(input_file)
else:
df2 = createDataFrame(input_file)
df1 = pd.concat([df1,df2])
counter += 1
input_file.close()
df1.to_csv('large.csv')
def createDataFrame(input_file):
checkTime = time.clock()
#print "Start DataFrame -- #%d" % counter
df1 = pd.read_csv(input_file,
sep = ",",
nrows = 500,
index_col = ['Date'])
#print "End DataFrame -- #%d" % counter
#print "Ran for " + str(time.clock() - checkTime) + " Seconds"
return df1
So zum Beispiel ich
date, testsite, data1, data2
1/1/1992 9:15:00, ber, 89, 200
1/1/1992 9:17:00, ber, 54, 103.3
1/1/1992 9:15:00, alt, 90, 109.23
1/1/1992 9:17:00, alt, 12, 110.1
möchten, wo date
und testsite
sind die Multi-Index