In [1]:
import os
import charts_function_list
import viz_functions
In [2]:
base, data, outputs = charts_function_list.folder_setup()
In [3]:
os.chdir(data)
In [119]:
animals = pd.read_csv('eyeball size body - Sheet1.csv') #load initial animal size sheet
animals['Binomial name'] = animals['Binomial name'].fillna('none') #fill missing binomial ames
In [9]:
part_1 = pd.read_table('PanTHERIA_1-0_WR93_Aug2008.txt') #initial dataset
part_1 = pd.read_table('PanTHERIA_1-0_WR93_Aug2008.txt') #initial dataset
part_2 = part_2.rename(columns={'14-1_InterbirthInterval_d':'14-1_InterBirthInterval_d',
'26-4_GR_MidRangeLat_dd':'26-4_GR_MRLat_dd',
'26-7_GR_MidRangeLong_dd':'26-7_GR_MRLong_dd'
}) #create standard column names
combined = pd.concat([part_1,part_2],sort=False) #create combined frame
combined['joint_binom'] = '' #set a blank column
#fill in nulls with respective binomial
combined.loc[combined['MSW05_Binomial'].isnull(),['joint_binom']] = combined.loc[combined['MSW05_Binomial'].isnull(),'MSW93_Binomial']
combined.loc[combined['MSW93_Binomial'].isnull(),['joint_binom']] = combined.loc[combined['MSW93_Binomial'].isnull(),'MSW05_Binomial']
In [121]:
In [133]:
animal_crew = [] #set blank array
for binom,common in zip(animals['Binomial name'].values,animals['Animal'].values):
temp_df = part_2.loc[part_2['MSW05_Binomial'].str.contains(binom),['MSW05_Binomial','5-1_AdultBodyMass_g']]
temp_df['common_animal'] = common
temp_df['MSW05_Binomial'] = binom
if len(temp_df)==0:
temp_df['MSW05_Binomial'] = binom
temp_df = pd.concat([temp_df,pd.DataFrame([[binom,0.0,common]],columns=temp_df.columns)])
`b
animal_crew.append(temp_df)
animal_crew=pd.concat(animal_crew)
animal_crew['pounds'] = animal_crew['5-1_AdultBodyMass_g']*0.00220462
full_animals = pd.merge(animal_crew,animals,left_on='common_animal',right_on='Animal',how='left')[['Animal','pounds','Eyeball Size (mm)']]
#['5-1_AdultBodyMass_g']*0.00220462
In [ ]:
#grr, probably could've just done this with a simple merge.. no reason to think there aren't exact matches. BOO
In [159]:
animal_crew_simple = pd.merge(animals,part_1,how='left',left_on='Binomial name',right_on='MSW05_Binomial')[['Animal','Binomial name','MSW05_Binomial','5-1_AdultBodyMass_g','Eyeball Size (mm)']]
animal_crew_simple['Pounds'] = animal_crew_simple['5-1_AdultBodyMass_g']*0.00220462
animal_crew_simple = animal_crew_simple.drop(['5-1_AdultBodyMass_g'],axis=1)
In [162]:
full_animals
Out[162]:
In [161]:
animal_crew_simple.loc[animal_crew_simple['MSW05_Binomial'].isnull()]
Out[161]:
In [ ]: