I'm stuck with the code below. Basically, I am looping through the first column of 2 dataframes with the loop variables 'analyticalname' and 'fedbatchname'. If these two variables find a match in each dataframe, then I want to access that element of the dataframe based on the value of the loop variable. When I run the code, however, I get a key error that originates at the line after the if statement. In essence, I am asking how to access an element of a dataframe based on a loop variable. Any suggestions?
import pandas as pd
analyticaldata = pd.read_csv('SE-HPLC.csv', usecols = ['Sample ID','%
Aggregate','% Monomer','% Fragment']) #loading data into pandas DataFrame
fedbatchdata = pd.read_csv('Culture Day Sheet.csv',usecols =
['RUN_NUMBER','% Aggregate','% Monomer','% Fragment'])
for analyticalname in analyticaldata['Sample ID']: #for each element in
first column of SE-HPLC worksheet
for fedbatchname in fedbatchdata['RUN_NUMBER']: #for each element in first column of Culture Day worksheet
if analyticalname == fedbatchname: #if any of the names match
fedbatchdata.ix[fedbatchdata.fedbatchname,'% Aggregate'] = analyticaldata[analyticalname]['% Aggregate']
fedbatchdata.ix[fedbatchdata.fedbatchname,'% Monomer'] = analyticaldata.ix[analyticalname,'% Monomer']
fedbatchdata.ix[fedbatchdata.fedbatchname,'% Fragment'] = analyticaldata.ix[analyticalname,'% Fragment']
EDIT: Here is some sample data for both dataframes, I apologize for leaving that out. The fedbatch dataframe is meant to be empty, I am trying to copy the values from the analytical dataframe into the fedbatch dataframe.
Analytical dataframe:
SAMPLE_ID: % Aggregate % Monomer % Fragment
A 2 4 1.5
B 1 4 6
C 5 5 2.1
D 3 7.1 10
Fed Batch Dataframe:
RUN_NUMBER: % Aggregate % Monomer % Fragment
B
A
C
D
analyticaldata.merge(fedbatchdata, left_on=['Sample ID'], right_on=['RUN_NUMBER'])analyticaldata.merge(fedbatchdata, left_on=['Sample ID'], right_on=['RUN_NUMBER'], how='left')working?