In [116]:
import pandas as pd
import numpy as np
from functools import  reduce
In [117]:
appname_str = '''0 podium
1 inkskape
2 artlantis studio
3 3D MYHOME designer
4 V-Ray
5 Google earth
6 SAI
7 procreate
8 layout
9 Musescore
? 不明
A ARCHCAD
B Blender
C cinema 4D
G micro GDS
H 手書き一般
I indesign
L laser Cutter
M 3ds MAX
P powerpoint
R Revit
S shade
V VectorMapMaker
a AutoCAD
b bentley archtecture
c clip studio paint
d DRACAD
e autodesk ecotect analysis
g GIMP
i illustrator
j JW CAD
l lumion
m microstation
p photoshop
r Rhino
s sketchup
v vectorworks
'''

proj_raw = '''1,vrp
2,ips
3,vpg
4,vsip
5,ips
6,ip
7,Api
8,ipa
9,Api
10,H
11,9A
12,3dp
13,ipA
14,vip
15,vpi
16,iprv
17,ipvr
18,rmipl
19,ipsaR
20,aip
21,vipg
22,vip
23,rpiI
24,ipV
25,jvip
26,vipr
27,vsripl
28,vP
29,ip
30,ipv
31,ripA
32,vpis
33,vpi
34,vpi
35,vip
36,vipsr
37,ipvsH
38,vpi
39,pisaH
40,vip
41,vsip
42,vip
43,vipH
44,vip
45,vApi
46,vips
47,aMsip
48,rip
49,vrip
50,Aips
51,ipv
52,aRip
53,arip
54,rvpiL
55,ip?
56,ipar
57,api
58,vpi
59,rip
60,breipl
61,aipc
62,vsip
63,vip
64,as01rpi
65,Rsip
66,vip
67,vsp
68,jvp
69,Aip
70,vrip
71,AspiI
72,Api
73,rCip
74,vip
75,Aip
76,H
77,ipvs
78,Rlip
79,viprC
80,ipG
81,ipAj
82,ipA
83,v
84,ipvH
85,Hip
86,vps2
87,ipjs
88,vips4
89,rip
90,ipa
91,api
92,Hip
93,vip
94,spiv
95,Aip
96,ipA
97,rip
98,Arip
99,vipr
100,rip
101,ipra5
102,ipr6
103,ipr
104,vpi
105,ipv
106,ipc7
107,ipra
108,iap
109,Hip
110,ipv
111,ApiI
112,asip
113,vip
114,Hi
115,Hip
116,sBp
117,vip
118,Hvip
119,aiA
120,v
121,H
122,ApiI
123,vp
124,pvS
125,ip
126,apsH
127,vip
128,rip
129,vAip
130,asip
131,aips
132,iprH
133,jpis0
134,I
135,ipR
136,jip
137,s80
138,jip
139,vip
140,ipv
141,ipA
142,vip
143,Aic'''
In [118]:
name_dict = dict()
for name_pair in appname_str.splitlines():
    n = name_pair.split(' ')
    if len(n)>=2:
        appchar = n[0]
        name_dict[appchar]   = ' '.join(n[1:])
In [119]:
projs = list()
for proj in proj_raw.split("\n"):
    a = proj.split(',')[1]
    projs.append( set(a))
In [120]:
freq=dict()
for proj in projs:
    for app in proj:
            if app  in name_dict:
                    if app not in freq:
                        freq[app] = 0
                    freq[app] = freq[app]+1

    
In [123]:
sorted([(v[0],name_dict[v[0]],v[1] ) for v in freq.items()],  key=lambda v: v[2], reverse=True)
Out[123]:
[('p', 'photoshop', 131),
 ('i', 'illustrator', 124),
 ('v', 'vectorworks', 62),
 ('r', 'Rhino', 31),
 ('s', 'sketchup', 30),
 ('A', 'ARCHCAD', 22),
 ('a', 'AutoCAD', 21),
 ('H', '手書き一般', 15),
 ('j', 'JW CAD', 7),
 ('R', 'Revit', 5),
 ('I', 'indesign', 5),
 ('l', 'lumion', 4),
 ('c', 'clip studio paint', 3),
 ('0', 'podium', 3),
 ('g', 'GIMP', 2),
 ('C', 'cinema 4D', 2),
 ('9', 'Musescore', 1),
 ('d', 'DRACAD', 1),
 ('3', '3D MYHOME designer', 1),
 ('m', 'microstation', 1),
 ('V', 'VectorMapMaker', 1),
 ('P', 'powerpoint', 1),
 ('M', '3ds MAX', 1),
 ('L', 'laser Cutter', 1),
 ('?', '不明', 1),
 ('b', 'bentley archtecture', 1),
 ('e', 'autodesk ecotect analysis', 1),
 ('1', 'inkskape', 1),
 ('G', 'micro GDS', 1),
 ('2', 'artlantis studio', 1),
 ('4', 'V-Ray', 1),
 ('5', 'Google earth', 1),
 ('6', 'SAI', 1),
 ('7', 'procreate', 1),
 ('B', 'Blender', 1),
 ('S', 'shade', 1),
 ('8', 'layout', 1)]