Advertisement
Guest User

make_slots.py

a guest
Oct 10th, 2016
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.87 KB | None | 0 0
  1. import os
  2. import pandas as pd
  3. import numpy as np
  4.  
  5.  
  6. def match_armor_s1(s):
  7.     return s.str.match('Attack|Accuracy|Rng\.Atk\.|Rng\.Acc\.|Mag\.Atk\.Bns\.|Mag\. Acc\.')
  8.  
  9. def match_armor_s3(s):
  10.     return s.str.match('STR|DEX|VIT|AGI|INT|MND|CHR')
  11.  
  12. def match_armor_s4(s):
  13.     return s.str.match('Accuracy|Rng\.Acc\.|Mag\. Acc\.')
  14.  
  15. def match_armor_s5(s):
  16.     return s.str.match('Attack|Rng\.Atk\.|Mag\.Atk\.Bns\.')
  17.  
  18. def match_armor_s2(s):
  19.     return ~s.str.match('none') & ~match_armor_s1(s) & ~match_armor_s3(s)
  20.  
  21. def item_is_armor(s):
  22.     return s.str.match('Herculean|Merlinic|Odyssean|Valorous|Chironic')
  23.  
  24. def match_slots(df, subspace, predicates):
  25.     for augment in range(1, 6):
  26.         s = subspace & ~subspace
  27.         for slot in range(augment, 6):
  28.             r = subspace & predicates[slot - 1](df['augment %d' % augment])
  29.             m, s = r & ~s, r | s
  30.             df.loc[m, ('slot %d' % slot)] = df.loc[m, ('augment %d' % augment)]
  31.             df.loc[m, ('slot %d potency' % slot)] = df.loc[m, ('augment %d potency' % augment)]
  32.  
  33. def match_armor_slots(df):
  34.     predicates = [
  35.         match_armor_s1,
  36.         match_armor_s2,
  37.         match_armor_s3,
  38.         match_armor_s4,
  39.         match_armor_s5,
  40.     ]
  41.     for stone in ['pellucid', 'fern', 'taupe']:
  42.         subspace = df.stone == stone
  43.         match_slots(df, subspace, predicates)
  44.  
  45. if __name__ == "__main__":
  46.     df = pd.read_csv('merged.csv')
  47.     for slot in range(1, 6):
  48.         df['slot %d' % slot] = 'none'
  49.         df['slot %d potency' % slot] = 0
  50.     match_armor_slots(df)
  51.     columns = [
  52.         'timestamp',
  53.         'name',
  54.         'stone',
  55.         'path',
  56.     ]
  57.     valid = item_is_armor(df.name) & ~(df.stone == 'dark matter')
  58.     for slot in range(1, 6):
  59.         columns.extend(['slot %d' % slot, 'slot %d potency' % slot])
  60.     df[valid].to_csv("slots.csv", index=False, columns=columns)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement