generated from Synteraction-Lab/TemplateRepository
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathcsv_to_anova.py
More file actions
42 lines (26 loc) · 1.04 KB
/
csv_to_anova.py
File metadata and controls
42 lines (26 loc) · 1.04 KB
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
# coding=utf-8
# pip3 install pandas
# command format: python3 csv_to_anova.py file_name.csv 'index_column' 'group_by_column' 'interested_data'
import sys
import optparse
import pandas as pd
import os
def csv_to_anova(file_name, index_column, group_by_column, interested_data_column):
df = pd.read_csv(file_name, header=0)
df_wide = df.pivot(index=index_column, columns=group_by_column, values=interested_data_column)
# print(df)
# print(df_wide)
file_path = os.path.splitext(file_name)
file_name_wide_format = f'{file_path[0]}-{interested_data_column}{file_path[1]}'
df_wide.to_csv(file_name_wide_format)
print(f'See the file: [{file_name_wide_format}]')
parser = optparse.OptionParser()
options, args = parser.parse_args()
# print('options:', options)
# print('args:', args)
if len(args) < 4:
print('Missing arguments!')
print(
"e.g.: python3 csv_to_anova.py file_name.csv 'index_column' 'group_by_column' 'interested_data_column'")
sys.exit(0)
csv_to_anova(args[0], args[1], args[2], args[3])