我需要减少此DataFrame的帮助:
2-gram 3-gram 4-gram 5-gram
0 FF FF- FF-F FF-FF
1 -F FFF FFF- FF-FF
2 FF F-F FFF- F-FF+
3 F- FF- FF+- --FF+
4 FF FF+ -FF+ --FF+
5 F- --F --FF --FF+
6 FF F+- +--F --FF+
7 +- -FF F+-- -F-FF
8 -F +-- FF+- FF-FF
9 F+ FF+ F-FF F-FF+
10 -- --F FF-F --FF+
11 FF F+- FF-F -F-FF
12 +- F-F F+-- F-FF+
13 -F FFF FF+- --FF+
14 F+ -FF F-FF --FF+
15 -- F-F F-FF --FF+
16 FF F+- +--F --FF+
17 +- -FF F+-- -F-FF
18 F- +-F FF+- F-FF+
19 FF -FF -FF+ -F-FF
20 FF F-F --FF F-FF+
21 -F F+- +-F- -F-FF
22 FF -FF FFF- F-FF+
23 -F +-- FF+- --FF+
24 F+ FF+ F-FF -F-FF
25 -- --F F-FF F-FF+
26 FF F+- +-F- -F-FF
27 +- -FF FFF- FF-FF
28 F- +-F FF+- FF-FF
29 FF -FF -FF+ F-FF+
.. ... ... ... ...
221 -F None None None
222 FF None None None
223 -F None None None
224 F+ None None None
225 -F None None None
226 -F None None None
227 FF None None None
228 -F None None None
229 F+ None None None
230 -F None None None
231 -F None None None
232 FF None None None
233 -F None None None
234 F+ None None None
235 -- None None None
236 FF None None None
237 +- None None None
238 F- None None None
239 FF None None None
240 F- None None None
241 FF None None None
242 +- None None None
243 -F None None None
244 F+ None None None
245 -- None None None
246 FF None None None
247 +- None None None
248 F- None None None
249 FF None None None
250 F None None None
对于每个列的唯一值以及每个列中这些唯一值的计数,如下所示:
2-gram 3-gram 4-gram 5-gram
0 FF 11 FF- 2 FF-F 3 FF-FF 5
1 -F 5 FFF 2 FFF- 4 F-FF+ 8
2 F- 4 F-F 4 FF+- 6 --FF+ 10
3 +- 4 FF+ 3 -FF+ 3 -F-FF 7
4 F+ 3 --F 3 --FF 2
5 -- 3 F+- 5 +--F 2
6 -FF 7 F+-- 3
7 +-- 2 F-FF 5
8 +-F 2 +-F- 2
数据帧是由一串长的“ F”,“-”和“ +”字符组成的,这些字符串已分为2、3、4和5组。
我认为我需要使用Groupby()函数,但是我不知道如何合并值计数
谢谢
答案 0 :(得分:1)
df1 = pd.DataFrame()
for x in df.columns:
s = df[x].value_counts()
df1[x] = pd.Series(s.index + ' ' + s.astype(str).values)
答案 1 :(得分:1)
这里是在每一列上使用pd.value_counts
并串联结果列表的人:
l = [pd.value_counts(df[i]).reset_index().astype(str).apply(' '.join, 1) for i in df]
out = pd.concat(l, 1).fillna('')
out.columns = df.columns
2-gram 3-gram 4-gram 5-gram
0 FF 11 -FF 7 FF+- 6 --FF+ 10
1 -F 5 F+- 5 F-FF 5 F-FF+ 8
2 +- 4 F-F 4 FFF- 4 -F-FF 7
3 F- 4 FF+ 3 FF-F 3 FF-FF 5
4 F+ 3 --F 3 -FF+ 3
5 -- 3 FFF 2 F+-- 3
6 +-- 2 --FF 2
7 +-F 2 +-F- 2
8 FF- 2 +--F 2