/
sl_mode.py
65 lines (49 loc) · 1.65 KB
/
sl_mode.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#!/usr/bin/python
# module load gcc/gcc-4.8.0
# module load python/2.7.5
import pandas as pd
from pandas import ExcelWriter
import argparse
# py_slidingWindow_xlsx release information
__version__ = '0.0.3'
_verdata = 'Feb 2015'
_devflag = True
#########################################################################> MAIN
# Program Header
print('\n=-= py_slidingWindow_xlsx =-= v' + __version__ + ' =-= ' +
_verdata + ' =-= by DLS team =-=')
if(_devflag):
print('\n>>> WARNING! THIS IS JUST A DEVELOPMENT SUBRELEASE.' +
' USE IT AT YOUR OWN RISK!')
# flags
parser = argparse.ArgumentParser()
parser.add_argument('-i','-input', help="input file", type=str)
parser.add_argument('-s', '-size', help='set the window size',
type=int, default=5)
args = parser.parse_args()
file_name = args.i
xl_file = pd.ExcelFile(file_name)
dfs = {sheet_name: xl_file.parse(sheet_name)
for sheet_name in xl_file.sheet_names}
# slow slmode version (as R script)
def slmode(sheet, size):
writer = ExcelWriter("sw_mode_" + str(size) + "t_" + sheet + ".xlsx")
columnas = dfs[str(sheet)].columns # store columns names
length = len(dfs[str(sheet)].columns)
new_df = pd.DataFrame(dfs[str(sheet)].iloc[:,0])
for i in range(1,length-(size-1)):
for j in range(0,(size)):
new_df[str(columnas[j+i])] = dfs[str(sheet)].iloc[:,j+i]
new_df.to_excel(writer,"set_" + str(i), index=False)
new_df = pd.DataFrame(dfs[str(sheet)].iloc[:,0])
writer.save()
def sw_authomatic_mode():
sheets = xl_file.sheet_names
for name in sheets:
print "processing sheet ", name
slmode(name, args.s)
print name, "finished!"
sw_authomatic_mode()
###############
## TO DO:
##