Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import os
- import pandas as pd
- import numpy as np
- def match_armor_s1(s):
- return s.str.match('Attack|Accuracy|Rng\.Atk\.|Rng\.Acc\.|Mag\.Atk\.Bns\.|Mag\. Acc\.')
- def match_armor_s3(s):
- return s.str.match('STR|DEX|VIT|AGI|INT|MND|CHR')
- def match_armor_s4(s):
- return s.str.match('Accuracy|Rng\.Acc\.|Mag\. Acc\.')
- def match_armor_s5(s):
- return s.str.match('Attack|Rng\.Atk\.|Mag\.Atk\.Bns\.')
- def match_armor_s2(s):
- return ~s.str.match('none') & ~match_armor_s1(s) & ~match_armor_s3(s)
- def item_is_armor(s):
- return s.str.match('Herculean|Merlinic|Odyssean|Valorous|Chironic')
- def match_slots(df, subspace, predicates):
- for augment in range(1, 6):
- s = subspace & ~subspace
- for slot in range(augment, 6):
- r = subspace & predicates[slot - 1](df['augment %d' % augment])
- m, s = r & ~s, r | s
- df.loc[m, ('slot %d' % slot)] = df.loc[m, ('augment %d' % augment)]
- df.loc[m, ('slot %d potency' % slot)] = df.loc[m, ('augment %d potency' % augment)]
- def match_armor_slots(df):
- predicates = [
- match_armor_s1,
- match_armor_s2,
- match_armor_s3,
- match_armor_s4,
- match_armor_s5,
- ]
- for stone in ['pellucid', 'fern', 'taupe']:
- subspace = df.stone == stone
- match_slots(df, subspace, predicates)
- if __name__ == "__main__":
- df = pd.read_csv('merged.csv')
- for slot in range(1, 6):
- df['slot %d' % slot] = 'none'
- df['slot %d potency' % slot] = 0
- match_armor_slots(df)
- columns = [
- 'timestamp',
- 'name',
- 'stone',
- 'path',
- ]
- valid = item_is_armor(df.name) & ~(df.stone == 'dark matter')
- for slot in range(1, 6):
- columns.extend(['slot %d' % slot, 'slot %d potency' % slot])
- df[valid].to_csv("slots.csv", index=False, columns=columns)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement