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,您的解决方案非常有效,谢谢!