I would like to calculate randamized combinations using the data in a dataframe. I already can create the combinations and subtract the values from each other. Now I try to achieve picking e.g. 100 randomized combinations and subtract these with the conditions defined in my code below:
The code looks like the following:
from itertools import combinations
import random as rnd
import pandas as pd
df = pd.read_csv('C:/Input_Data_Analysis_Testanalysis.csv',sep=';')
print(df)
df_res2 = pd.DataFrame([list(name_g) + [-val1+val2,'{},{}'.format(unit1,unit2), '{},{}'.format(town1,town2)]
for name_g, df_g in df.groupby(['fact_date','Country','Scen'])
for ((val1, unit1, town1), (val2, unit2, town2)) in combinations(df_g[['Value','Unit','Town']].values,2)],
columns=['Combination','Country','Scen','Value_Sum','Unit_Com','Town'])
I also tried making an example how I can randomize data in an dataframe with a little bit different simpler example it somehow worked but using it in the original code above I not succeed making it:
print(df_res2)
z = []
for i in range(20):
#constant seed for cross-check reasons
rnd.seed(i)
y = rnd.choice(df_res2)
z.append(y)
print(z)
But if i try using the randomizer in the original code I get an error message:
KeyError: 12
The input Data looks like the following:
fact_date Unit Town Scen Value Country
0 11. Apr a Town A 1 13 USA
1 11. Apr a Town A 2 11 USA
2 11. Apr b Town A 1 15 USA
3 11. Apr b Town A 2 20 USA
4 10. Apr a Town A 1 18 USA
5 10. Apr a Town A 2 12 USA
6 10. Apr b Town A 1 10 USA
7 10. Apr b Town A 2 13 USA
8 11. Apr e Town B 1 18 USA
9 11. Apr e Town B 2 17 USA
10 11. Apr f Town B 1 15 USA
11 11. Apr f Town B 2 19 USA
12 10. Apr e Town B 1 19 USA
13 10. Apr e Town B 2 10 USA
14 10. Apr f Town B 1 16 USA
15 10. Apr f Town B 2 10 USA
I expect the output to look like the following (if it is randomized it might looks different (seed can be kept in the first instance constant that the results are reproducable):
Combination Country Scen Value_Sum Unit_Com Town
0 10. Apr USA 1 -8 a,b Town A,Town A
1 10. Apr USA 1 1 a,e Town A,Town B
2 10. Apr USA 1 -2 a,f Town A,Town B
3 10. Apr USA 1 9 b,e Town A,Town B
4 10. Apr USA 1 6 b,f Town A,Town B
5 10. Apr USA 1 -3 e,f Town B,Town B
6 10. Apr USA 2 1 a,b Town A,Town A
7 10. Apr USA 2 -2 a,e Town A,Town B
8 10. Apr USA 2 -2 a,f Town A,Town B
9 10. Apr USA 2 -3 b,e Town A,Town B
10 10. Apr USA 2 -3 b,f Town A,Town B
11 10. Apr USA 2 0 e,f Town B,Town B
12 10. Apr USA 2 -2 a,f Town A,Town B
13 10. Apr USA 2 -3 e,f Town B,Town B
14 10. Apr USA 2 -3 b,e Town A,Town B
15 10. Apr USA 2 1 a,b Town A,Town A
16 10. Apr USA 2 -3 b,f Town A,Town B
17 11. Apr USA 1 2 a,b Town A,Town A
18 11. Apr USA 1 5 a,e Town A,Town B
19 11. Apr USA 1 2 a,f Town A,Town B
20 11. Apr USA 1 3 b,e Town A,Town B
21 11. Apr USA 1 0 b,f Town A,Town B
22 11. Apr USA 1 -3 e,f Town B,Town B
23 11. Apr USA 2 9 a,b Town A,Town A
24 11. Apr USA 2 6 a,e Town A,Town B
25 11. Apr USA 2 8 a,f Town A,Town B
26 11. Apr USA 2 -3 b,e Town A,Town B
27 11. Apr USA 2 -1 b,f Town A,Town B
28 11. Apr USA 2 2 e,f Town B,Town B
29 11. Apr USA 2 6 a,e Town A,Town B
30 11. Apr USA 2 6 a,e Town A,Town B
31 11. Apr USA 2 -3 e,f Town B,Town B
32 11. Apr USA 2 2 a,f Town A,Town B
33 11. Apr USA 2 9 a,b Town A,Town A
Aucun commentaire:
Enregistrer un commentaire