Python 计算数据帧中的组合创建新的数据帧

Python 计算数据帧中的组合创建新的数据帧,python,pandas,dataframe,analytics,Python,Pandas,Dataframe,Analytics,所以我有一个数据框,叫做药物反应 我想创建一个名为new_r_d的表格,在这里我可以记录患者在服用某种药物(如 这是我的代码,但我遇到了一些错误,例如“无法强制转换为系列,长度必须为3,给定0” 假设当前反应(drug_rec_act)列中的行包含列表中包含的一个字符串,则可以将该列中的值转换为字符串列表(通过在逗号分隔符上拆分每个字符串),然后利用explode()函数和value\u counts()获得所需结果: df['drug_rec_act'] = df['drug_rec_ac

所以我有一个数据框,叫做药物反应

我想创建一个名为new_r_d的表格,在这里我可以记录患者在服用某种药物(如

这是我的代码,但我遇到了一些错误,例如“无法强制转换为系列,长度必须为3,给定0”


假设当前反应(drug_rec_act)列中的行包含列表中包含的一个字符串,则可以将该列中的值转换为字符串列表(通过在逗号分隔符上拆分每个字符串),然后利用
explode()
函数和
value\u counts()
获得所需结果:

df['drug_rec_act'] = df['drug_rec_act'].apply(lambda x: x[0].split(','))

df_long = df.explode('drug_rec_act')

result = df_long.groupby('drugname')['drug_rec_act'].value_counts().reset_index(name='count')

您可能应该从示例数据中删除实际药物名称,因为它很可能是机密数据。这一点很好!我认为这是不可信的,因为数据是公开的,尽管:
df['drug_rec_act'] = df['drug_rec_act'].apply(lambda x: x[0].split(','))

df_long = df.explode('drug_rec_act')

result = df_long.groupby('drugname')['drug_rec_act'].value_counts().reset_index(name='count')