In [3]:
import pandas
folder = '/Users/garcia/Dropbox/simulationResults/repeatedgameswithmistakes/third_trial_harvard/'

In [5]:
df = pandas.read_csv(folder + 'tr_3_time_game_2_scheme_bias_mistake_0.0.csv', nrows=100)

In [27]:
one_pop = df['population'][18]

In [18]:
one_pop


Out[18]:
'[D/DD0DC0CD0CC0]:186; [D/DD0DC0CD1CC0, C/DD0DC1CD0CC1]:14'

In [16]:
(len(str(one_pop).split(':'))/2)


Out[16]:
1

In [39]:
splitted = str(one_pop).split(';')

In [40]:
pairs = zip(splitted[::2], splitted[1::2])

In [42]:
pairs[0][0]


Out[42]:
'[D/DD0DC0CD0CC0]:186'

In [43]:
splitted


Out[43]:
['[D/DD0DC0CD0CC0]:186', ' [D/DD0DC0CD1CC0, C/DD0DC1CD0CC1]:14']

In [46]:
def build_dict(population_string):
    ans = dict()
    splitted = str(population_string).split(';')
    for pair in splitted:
        strategy = pair.split(':')[0]
        count = int(pair.split(':')[1])
        ans[strategy] = count
    return ans

In [47]:
build_dict(one_pop)


Out[47]:
{' [D/DD0DC0CD1CC0, C/DD0DC1CD0CC1]': 14, '[D/DD0DC0CD0CC0]': 186}

In [48]:
resultado = _

In [88]:
def average_automaton_size(diccionario):
    number_of_individuals = np.sum(diccionario.values())
    ans = 0.0
    for key, value in diccionario.items():
        freq = float(value)
        states = float(key.count('/'))
        ans = ans + freq*states
    return ans/number_of_individuals

In [83]:
resultado.items()


Out[83]:
[(' [D/DD0DC0CD1CC0, C/DD0DC1CD0CC1]', 14), ('[D/DD0DC0CD0CC0]', 186)]

In [87]:
average_automaton_size(resultado)


Out[87]:
1.0700000000000001

In [84]:
(14*2+186)/200.0


Out[84]:
1.07

In [ ]: