Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python3
- import pandas as pd
- import numpy as np
- import re
- number = re.compile("(-)?(\d+)((\.|,)(\d+))?([-+ ](\d))?")
- x = pd.read_csv("raw.csv", header=None)
- def make_number(m):
- sign = m.group(1) == '-'
- first = int(m.group(2))
- if m.group(5):
- second = int(m.group(5)) / 10.0**len(m.group(5))
- else:
- second = 0
- x = first + second
- extra = m.group(6)
- if extra:
- extra = int(extra)
- if sign:
- x = -x
- return x, extra
- f = open("gost_4401.csv", "w")
- last_extra = None
- for (i, l) in enumerate(x.iterrows()):
- if np.isnan(l[1][1]):
- continue
- values, extra = list(zip(*list(map(lambda x: make_number(number.match(str(x).strip())), l[1]))))
- if last_extra is None:
- last_extra = extra
- else:
- last_extra = list(map(lambda x: x[1] if not (x[1] is None) else x[0], zip(last_extra,extra)))
- values = list(map(lambda x: x[1]*10**x[0] if not (x[0] is None) else x[1], zip(last_extra, values)))
- f.write(",".join(map(str,values))+"\n")
- # print(i,map(l)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement