我有一个数据框架,其中包含专业和调查问卷中的问题。我试图总结出我们对哪个专业使用的问卷,但我们对不同的专业有类似的问题,尽管我们没有相同的问卷。所以我想找出相似的问题给相似的专业。基本上,我有这个。
profession question
AAAA question_a
AAAA question_b
BBBB question_a
BBBB question_d
CCCC question_a
CCCC question_c
我想得到这样的东西
question profession
question_a AAAA
BBBB
CCCC
question_d BBBB
question_c CCCC
或者也许我可以得到一些列表或者听写的东西,以便以后使用。
我试过下面的命令。
df.groupby(['question','profession']).count()
得到的结果是:
question profession other_column_1 other_column_2
question_a AAAA
BBBB
.
.
.
问题是我无法实际使用它。我不知道如何访问问题和职业字段,我不知道如何列出组合等等。
我想你需要这个。
In [676]: grp = df.groupby(['question'])
In [678]: for k,v in grp:
...: print(v)
...:
profession question
0 AAAA question_a
2 BBBB question_a
4 CCCC question_a
profession question
1 AAAA question_b
profession question
5 CCCC question_c
profession question
3 BBBB question_d
你差不多了,你需要做的就是用你的代码结果创建一个新的df。
df2 = df.groupby(['question','profession']).count()
现在你可以访问df2,并做你需要的事情。
这是你要找的吗?
你可以用这个。
df.groupby('profession')['question'].apply(','.join).reset_index()
它给出的结果是
profession question
0 AAAA question_a,question_b
1 BBBB question_a,question_d
2 CCCC question_a,question_c
如果你想让每个字符串都出现在换行符上,你可以用'\n'代替','。