Python 熊猫-在一个单元格中存储多个值

Python 熊猫-在一个单元格中存储多个值,python,data-structures,pandas,dataframe,Python,Data Structures,Pandas,Dataframe,我从一份问卷中得到了答案,我开始用熊猫来处理它们 目前看来: In[1]: questionnaire = pd.DataFrame([{'age': 72, 'sex': 'M'}, {'age': 80, 'sex': 'F'}], index=[np.array(['patient1', 'patient2'])]) questionnaire Out[1]:

我从一份问卷中得到了答案,我开始用熊猫来处理它们

目前看来:

In[1]:

questionnaire = pd.DataFrame([{'age': 72, 'sex': 'M'},
                              {'age': 80, 'sex': 'F'}],
                             index=[np.array(['patient1', 'patient2'])])
questionnaire


Out[1]:

           age sex
 patient1   72   M
 patient2   80   F


In[2]:

questionnaire.groupby('sex').size()

Out[2]:

sex
F      1
M      1
我的问题是,这份问卷还带有开放性问题,将得到多个答案

因此,我想以某种方式将这些多个值存储在一个单元格中,例如:

In[3]:

questionnaire = pd.DataFrame([{'age': 72, 'sex': 'M',
                               'activites': ['sleep', 'eat']},
                              {'age': 80, 'sex': 'F',
                               'activites': ['sleep', 'walk']}],
                             index=[np.array(['patient1', 'patient2'])])
questionnaire


Out[3]:

               activites age sex
 patient1   [sleep, eat]  72   M
 patient2  [sleep, walk]  80   F
我期待着这样的事情:

In[?]:

questionnaire.groupby('activities').size()

Out[?]:

activities
eat    1
sleep  2
walk   1
但我在[3]中的尝试不起作用,因为数组在数据帧中仅被视为“对象”


我可能想错了。是否有任何数据结构允许我为一名患者从一个问题中获得多个值?

可能最好为每个患者提供多行。一行写着“sleep,72,M”,另一行写着“eat,72,M”。将“patient1”字段从索引更改为仅显示“patient ID”的普通列。在普通数据库方案中,我们将使用两个表来解决此问题。一个从
patient\u id
到所有患者信息,另一个在
(patient\u id,question\u id)
上有索引到
answer
。我计划通过创建多个df来解决这个问题,就像@U2EF1所说的那样,然后只需在名称或唯一id上合并它们,就像使用db一样。我认为您应该能够使用pandas.merge(df1,df2,on='identifier')将它们链接在一起。@U2EF1,您的解决方案非常有效,谢谢!