Skip to content

Instantly share code, notes, and snippets.

@managedkaos
Last active May 5, 2023 08:52
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save managedkaos/4b57d0316ac3228ab2766fc951a6940c to your computer and use it in GitHub Desktop.
Save managedkaos/4b57d0316ac3228ab2766fc951a6940c to your computer and use it in GitHub Desktop.
Reads a CSV of topic words and weights stored in one row across 11 columns. Creates a new CSV with the topics words and scores stored across four rows and seven columns.
Topic Word 1 Weight 1 Word 2 Weight 2 Word 3 Weight 3 Word 4 Weight 4 Word 5 Weight 5 Word 6 Weight 6 Word 7 Weight 7 Word 8 Weight 8 Word 9 Weight 9 Word 10 Weight 10
1 report 0.7596 adverse 0.0413 submit 0.0409 impact 0.0398 upon 0.0349 follow 0.0341 completion 0.0333 number 0.0082 visually 0.0013 inspect 0.0013
2 injury 0.398 intervention 0.3205 medical 0.279 report 0.0 fda 0.0 doc 0.0 problem 0.0 power 0.0 stick 0.0 via 0.0
3 confirmation 0.4171 could 0.1582 allegation 0.1121 determine 0.0965 probable 0.0957 cause 0.0614 via 0.0476 aberration 0.0038 count 0.0025 high 0.0016
4 fail 0.3576 error 0.3275 transmitter 0.313 occur 0.0004 report 0.0 fda 0.0 via 0.0 recall 0.0 safety 0.0 power 0.0
5 could 0.3327 probable 0.2869 determine 0.2133 cause 0.165 allegation 0.0 confirmation 0.0 report 0.0 inaccuracies 0.0 additionally 0.0 via 0.0
6 could 0.3064 determine 0.2886 cause 0.259 root 0.1422 possible 0.0011 probable 0.0 allegation 0.0 additionally 0.0 via 0.0 doc 0.0
7 report 0.9937 occur 0.0009 transmitter 0.0 allegation 0.0 intervention 0.0 injury 0.0 medical 0.0 cause 0.0 determine 0.0 probable 0.0
8 issue 0.1456 resolve 0.1142 replace 0.0945 support 0.0657 close 0.0604 share 0.0525 per 0.0506 miss 0.0486 sensor 0.0443 wire 0.0395
9 information 0.163 available 0.1616 patient 0.1049 additional 0.089 supplemental 0.0879 submit 0.0861 event 0.0816 become 0.0754 new 0.0746 relevant 0.0745
10 hour 0.269 one 0.2631 signal 0.2483 loss 0.2084 occur 0.0072 g6 0.0015 scar 0.0013 report 0.0 inaccuracies 0.0 recall 0.0
11 transmitter 0.2465 cause 0.1597 probable 0.1595 determine 0.1477 low 0.1471 battery 0.1358 power 0.0 fda 0.0 doc 0.0 difference 0.0
12 report 0.9931 injury 0.0008 medical 0.0004 intervention 0.0003 occur 0.0 transmitter 0.0 allegation 0.0 cause 0.0 probable 0.0 determine 0.0
13 data 0.9198 present 0.0267 allege 0.0265 reflect 0.0051 investigate 0.004 dexcom 0.0039 insulin 0.0034 exterior 0.0026 diabetes 0.002 know 0.0018
14 b 0.1537 insert 0.1173 device 0.1127 system 0.0876 abdomen 0.082 indicate 0.0588 usage 0.0542 offlabel 0.0493 operate 0.047 smart 0.0418
15 customer 0.2637 transmitter 0.1427 send 0.1401 replacement 0.1399 alert 0.0729 id 0.0572 invalid 0.0511 receive 0.0414 calibration 0.0282 restore 0.0174
16 report 0.9794 intervention 0.0058 medical 0.0056 injury 0.0038 occur 0.0 transmitter 0.0 allegation 0.0 cause 0.0 determine 0.0 probable 0.0
17 perform 0.2707 pass 0.2411 inspection 0.1232 visual 0.123 external 0.0985 pair 0.0592 testdownload 0.0302 bluetooth 0.0248 externalexterior 0.0189 download 0.0076
18 evaluation 0.3638 provide 0.3419 product 0.2556 data 0.0368 doc 0.0 power 0.0 recall 0.0 via 0.0 difference 0.0 experience 0.0
19 loss 0.4972 signal 0.2704 mobile 0.0962 relate 0.0576 application 0.0538 determine 0.0186 therefore 0.0017 connection 0.0014 report 0.0 occur 0.0
20 cause 0.3823 determine 0.2712 probable 0.1858 could 0.1584 allegation 0.0 report 0.0 transmitter 0.0 data 0.0 via 0.0 doc 0.0
21 device 0.2651 receive 0.1806 however 0.171 within 0.0774 specification 0.0767 operate 0.0763 yet 0.0423 expect 0.0416 return 0.0347 remove 0.0118
22 confirm 0.5593 evaluate 0.3372 allegation 0.1016 data 1e-04 recall 0.0 difference 0.0 problem 0.0 via 0.0 doc 0.0 power 0.0
23 app 0.1767 transmitter 0.1442 unable 0.1383 connection 0.1378 probable 0.1356 cause 0.1334 establish 0.117 addition 0.0112 expire 0.0032 report 0.0
24 report 0.9848 correction 0.0057 date 0.0037 intervention 0.0002 injury 1e-04 medical 1e-04 occur 0.0 transmitter 0.0 allegation 0.0 data 0.0
25 occur 0.9178 intermittent 0.041 audio 0.0135 report 0.012 output 0.0117 transmitter 0.0 loss 0.0 signal 0.0 medical 0.0 one 0.0
26 bg 0.2308 read 0.2183 mgdl 0.1872 cgm 0.1209 reportedly 0.1195 meter 0.1018 second 0.0097 patient¿s 0.0037 third 0.003 periods 0.0014
27 intervention 0.368 medical 0.3516 injury 0.2776 report 0.0002 occur 0.0 allegation 0.0 data 0.0 transmitter 0.0 product 0.0 via 0.0
28 probable 0.3831 cause 0.2534 determine 0.2476 could 0.0859 potential 0.015 power 0.0067 lead 0.0061 misuse 0.0 allegation 0.0 body 0.0
29 occur 0.9411 report 0.0552 transmitter 0.0 loss 0.0 signal 0.0 medical 0.0 intervention 0.0 injury 0.0 allegation 0.0 hour 0.0
30 report 0.883 receiver 0.0626 full 0.0104 itch 0.0102 charge 0.0093 boot 0.009 cause 0.0044 determine 0.0027 occur 0.0012 allegation 0.0009
31 report 0.9558 prematurely 0.0384 occur 0.0004 allegation 1e-04 cause 0.0 determine 0.0 probable 0.0 injury 0.0 transmitter 0.0 intervention 0.0
32 injury 0.3407 medical 0.3261 intervention 0.2556 display 0.027 report 0.0213 skin 0.0105 freeze 0.0066 problem 0.0052 reaction 0.0039 occur 0.0
33 product 0.4499 evaluation 0.2524 return 0.2395 state 0.0143 upper 0.0073 user 0.0069 guide 0.0066 without 0.0037 show 0.0027 home 0.0027
34 perform 0.2062 voltage 0.2043 test 0.1763 use 0.0902 less 0.059 check 0.0579 transmitter 0.0552 months 0.0534 due 0.0405 fail 0.0236
35 value 0.1597 within 0.129 error 0.1157 park 0.1045 grid 0.1045 fall 0.103 zone 0.1013 glucose 0.08 investigation 0.0323 find 0.0314
36 allegation 0.9315 undetermined 0.0475 initial 0.0051 work 0.0045 subsequent 0.0039 mdr 0.0039 require 0.0013 report 0.0 occur 0.0 data 0.0
37 medical 0.3505 intervention 0.3475 injury 0.2901 report 0.0051 shutoff 0.0043 occur 0.0 allegation 0.0 transmitter 0.0 fda 0.0 power 0.0
38 sensor 0.1964 expiration 0.1802 early 0.1431 find 0.0771 event 0.0633 pair 0.0601 base 0.0515 reportable 0.0503 failure 0.042 new 0.0355
39 connection 0.3076 transmitter 0.1791 pump 0.1444 lose 0.1007 greater 0.0783 hour 0.0676 regain 0.0349 ultimately 0.0304 time 0.021 duration 0.0168
40 glucose 0.2134 blood 0.1125 cgm 0.1092 monitor 0.0997 continuous 0.0987 meter 0.0949 inaccuracy 0.0933 bg 0.0879 read 0.0829 inaccuracies 0.0049
41 sensor 0.3995 session 0.1267 multiple 0.0832 attempt 0.0703 despite 0.0616 unable 0.0613 start 0.0581 tandem 0.0359 technical 0.0268 regard 0.0179
42 investigation 0.1232 window 0.119 find 0.1172 review 0.1153 log 0.1133 within 0.113 share 0.1101 perform 0.1029 loss 0.0465 signal 0.0324
import csv
# Open the input CSV file
with open('input.csv', 'r') as input_file:
csv_reader = csv.reader(input_file)
# Create a dictionary to store the data pairs by ID
id_data_pairs = {}
# Loop through each row in the input CSV file
for row in csv_reader:
# Extract the ID value from the first column of the input row
id_value = row[0]
# Split the remaining columns into pairs of data
data_pairs = [row[i:i+2] for i in range(1, len(row), 2)]
# Add the data pairs to the dictionary, grouped by ID
if id_value in id_data_pairs:
id_data_pairs[id_value] += data_pairs
else:
id_data_pairs[id_value] = data_pairs
# Create a list to store the output rows
output_rows = []
# Loop through each ID in the dictionary
for id_value in id_data_pairs.keys():
# Get the data pairs for the current ID
data_pairs = id_data_pairs[id_value]
# Determine the number of pairs and the number of rows needed
num_pairs = len(data_pairs)
num_rows = num_pairs // 3
if num_pairs % 3 != 0:
num_rows += 1
# Create a list of empty rows
rows = [[] for i in range(num_rows)]
# Loop through the data pairs and add them to the rows list
for i, pair in enumerate(data_pairs):
row_index = i % num_rows
rows[row_index].extend(pair)
# Add the rows to the output list, with the ID value in the first column of each row
for row in rows:
output_rows.append([id_value] + row)
# Open a new CSV file for writing the output
with open('output.csv', 'w', newline='') as output_file:
csv_writer = csv.writer(output_file)
# Write the output rows to the output CSV file
for row in output_rows:
csv_writer.writerow(row)
Topic Word 1 Weight 1 Word 5 Weight 5 Word 9 Weight 9
Topic Word 2 Weight 2 Word 6 Weight 6 Word 10 Weight 10
Topic Word 3 Weight 3 Word 7 Weight 7
Topic Word 4 Weight 4 Word 8 Weight 8
1 report 0.7596 upon 0.0349 visually 0.0013
1 adverse 0.0413 follow 0.0341 inspect 0.0013
1 submit 0.0409 completion 0.0333
1 impact 0.0398 number 0.0082
2 injury 0.398 fda 0.0 stick 0.0
2 intervention 0.3205 doc 0.0 via 0.0
2 medical 0.279 problem 0.0
2 report 0.0 power 0.0
3 confirmation 0.4171 probable 0.0957 count 0.0025
3 could 0.1582 cause 0.0614 high 0.0016
3 allegation 0.1121 via 0.0476
3 determine 0.0965 aberration 0.0038
4 fail 0.3576 report 0.0 safety 0.0
4 error 0.3275 fda 0.0 power 0.0
4 transmitter 0.313 via 0.0
4 occur 0.0004 recall 0.0
5 could 0.3327 allegation 0.0 additionally 0.0
5 probable 0.2869 confirmation 0.0 via 0.0
5 determine 0.2133 report 0.0
5 cause 0.165 inaccuracies 0.0
6 could 0.3064 possible 0.0011 via 0.0
6 determine 0.2886 probable 0.0 doc 0.0
6 cause 0.259 allegation 0.0
6 root 0.1422 additionally 0.0
7 report 0.9937 intervention 0.0 determine 0.0
7 occur 0.0009 injury 0.0 probable 0.0
7 transmitter 0.0 medical 0.0
7 allegation 0.0 cause 0.0
8 issue 0.1456 close 0.0604 sensor 0.0443
8 resolve 0.1142 share 0.0525 wire 0.0395
8 replace 0.0945 per 0.0506
8 support 0.0657 miss 0.0486
9 information 0.163 supplemental 0.0879 new 0.0746
9 available 0.1616 submit 0.0861 relevant 0.0745
9 patient 0.1049 event 0.0816
9 additional 0.089 become 0.0754
10 hour 0.269 occur 0.0072 inaccuracies 0.0
10 one 0.2631 g6 0.0015 recall 0.0
10 signal 0.2483 scar 0.0013
10 loss 0.2084 report 0.0
11 transmitter 0.2465 low 0.1471 doc 0.0
11 cause 0.1597 battery 0.1358 difference 0.0
11 probable 0.1595 power 0.0
11 determine 0.1477 fda 0.0
12 report 0.9931 occur 0.0 probable 0.0
12 injury 0.0008 transmitter 0.0 determine 0.0
12 medical 0.0004 allegation 0.0
12 intervention 0.0003 cause 0.0
13 data 0.9198 investigate 0.004 diabetes 0.002
13 present 0.0267 dexcom 0.0039 know 0.0018
13 allege 0.0265 insulin 0.0034
13 reflect 0.0051 exterior 0.0026
14 b 0.1537 abdomen 0.082 operate 0.047
14 insert 0.1173 indicate 0.0588 smart 0.0418
14 device 0.1127 usage 0.0542
14 system 0.0876 offlabel 0.0493
15 customer 0.2637 alert 0.0729 calibration 0.0282
15 transmitter 0.1427 id 0.0572 restore 0.0174
15 send 0.1401 invalid 0.0511
15 replacement 0.1399 receive 0.0414
16 report 0.9794 occur 0.0 determine 0.0
16 intervention 0.0058 transmitter 0.0 probable 0.0
16 medical 0.0056 allegation 0.0
16 injury 0.0038 cause 0.0
17 perform 0.2707 external 0.0985 externalexterior 0.0189
17 pass 0.2411 pair 0.0592 download 0.0076
17 inspection 0.1232 testdownload 0.0302
17 visual 0.123 bluetooth 0.0248
18 evaluation 0.3638 doc 0.0 difference 0.0
18 provide 0.3419 power 0.0 experience 0.0
18 product 0.2556 recall 0.0
18 data 0.0368 via 0.0
19 loss 0.4972 application 0.0538 report 0.0
19 signal 0.2704 determine 0.0186 occur 0.0
19 mobile 0.0962 therefore 0.0017
19 relate 0.0576 connection 0.0014
20 cause 0.3823 allegation 0.0 via 0.0
20 determine 0.2712 report 0.0 doc 0.0
20 probable 0.1858 transmitter 0.0
20 could 0.1584 data 0.0
21 device 0.2651 specification 0.0767 return 0.0347
21 receive 0.1806 operate 0.0763 remove 0.0118
21 however 0.171 yet 0.0423
21 within 0.0774 expect 0.0416
22 confirm 0.5593 recall 0.0 doc 0.0
22 evaluate 0.3372 difference 0.0 power 0.0
22 allegation 0.1016 problem 0.0
22 data 1e-04 via 0.0
23 app 0.1767 probable 0.1356 expire 0.0032
23 transmitter 0.1442 cause 0.1334 report 0.0
23 unable 0.1383 establish 0.117
23 connection 0.1378 addition 0.0112
24 report 0.9848 injury 1e-04 allegation 0.0
24 correction 0.0057 medical 1e-04 data 0.0
24 date 0.0037 occur 0.0
24 intervention 0.0002 transmitter 0.0
25 occur 0.9178 output 0.0117 medical 0.0
25 intermittent 0.041 transmitter 0.0 one 0.0
25 audio 0.0135 loss 0.0
25 report 0.012 signal 0.0
26 bg 0.2308 reportedly 0.1195 third 0.003
26 read 0.2183 meter 0.1018 periods 0.0014
26 mgdl 0.1872 second 0.0097
26 cgm 0.1209 patient¿s 0.0037
27 intervention 0.368 occur 0.0 product 0.0
27 medical 0.3516 allegation 0.0 via 0.0
27 injury 0.2776 data 0.0
27 report 0.0002 transmitter 0.0
28 probable 0.3831 potential 0.015 allegation 0.0
28 cause 0.2534 power 0.0067 body 0.0
28 determine 0.2476 lead 0.0061
28 could 0.0859 misuse 0.0
29 occur 0.9411 signal 0.0 allegation 0.0
29 report 0.0552 medical 0.0 hour 0.0
29 transmitter 0.0 intervention 0.0
29 loss 0.0 injury 0.0
30 report 0.883 charge 0.0093 occur 0.0012
30 receiver 0.0626 boot 0.009 allegation 0.0009
30 full 0.0104 cause 0.0044
30 itch 0.0102 determine 0.0027
31 report 0.9558 cause 0.0 transmitter 0.0
31 prematurely 0.0384 determine 0.0 intervention 0.0
31 occur 0.0004 probable 0.0
31 allegation 1e-04 injury 0.0
32 injury 0.3407 report 0.0213 reaction 0.0039
32 medical 0.3261 skin 0.0105 occur 0.0
32 intervention 0.2556 freeze 0.0066
32 display 0.027 problem 0.0052
33 product 0.4499 upper 0.0073 show 0.0027
33 evaluation 0.2524 user 0.0069 home 0.0027
33 return 0.2395 guide 0.0066
33 state 0.0143 without 0.0037
34 perform 0.2062 less 0.059 due 0.0405
34 voltage 0.2043 check 0.0579 fail 0.0236
34 test 0.1763 transmitter 0.0552
34 use 0.0902 months 0.0534
35 value 0.1597 grid 0.1045 investigation 0.0323
35 within 0.129 fall 0.103 find 0.0314
35 error 0.1157 zone 0.1013
35 park 0.1045 glucose 0.08
36 allegation 0.9315 subsequent 0.0039 occur 0.0
36 undetermined 0.0475 mdr 0.0039 data 0.0
36 initial 0.0051 require 0.0013
36 work 0.0045 report 0.0
37 medical 0.3505 shutoff 0.0043 fda 0.0
37 intervention 0.3475 occur 0.0 power 0.0
37 injury 0.2901 allegation 0.0
37 report 0.0051 transmitter 0.0
38 sensor 0.1964 event 0.0633 failure 0.042
38 expiration 0.1802 pair 0.0601 new 0.0355
38 early 0.1431 base 0.0515
38 find 0.0771 reportable 0.0503
39 connection 0.3076 greater 0.0783 time 0.021
39 transmitter 0.1791 hour 0.0676 duration 0.0168
39 pump 0.1444 regain 0.0349
39 lose 0.1007 ultimately 0.0304
40 glucose 0.2134 continuous 0.0987 read 0.0829
40 blood 0.1125 meter 0.0949 inaccuracies 0.0049
40 cgm 0.1092 inaccuracy 0.0933
40 monitor 0.0997 bg 0.0879
41 sensor 0.3995 despite 0.0616 technical 0.0268
41 session 0.1267 unable 0.0613 regard 0.0179
41 multiple 0.0832 start 0.0581
41 attempt 0.0703 tandem 0.0359
42 investigation 0.1232 log 0.1133 loss 0.0465
42 window 0.119 within 0.113 signal 0.0324
42 find 0.1172 share 0.1101
42 review 0.1153 perform 0.1029
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment