我用pandas和python编写代码.我想把代码转换成一个新的数据帧,输出分为两列



我从一个数据帧转到另一个数据框架,并对每个唯一的人的名字旁边的列执行计算。现在,我在它旁边有一个名称和计算的输出,我想把它分成两列,放在数据框中打印。我想我应该把整个for循环放进字典,然后放进数据帧,但不确定如何做到这一点。我是这方面的初学者,非常感谢人们的帮助。请参阅以下循环件的代码:


names = df['Participant Name, Number'].unique()

for name in names:
unique_name_df = df[df['Participant Name, Number'] == name]
badge_types = unique_name_df['Dosimeter Location'].unique()
if 'Collar' in badge_types:
collar = unique_name_df[unique_name_df['Dosimeter Location'] == 'Collar']['Total DDE'].astype(float).sum()
if 'Chest' in badge_types:
chest = unique_name_df[unique_name_df['Dosimeter Location'] == 'Chest']['Total DDE'].astype(float).sum()
if len(badge_types) == 1:
if 'Collar' in badge_types:
value = collar
elif 'Chest' in badge_types:
value = chest
print(name, value)

如果在所有情况下都期望len(badge_types(==1,请尝试:

pd.DataFrame( df.groupby(['Participant Name, Number']).Total_DDE.sum() )

否则,要获得每个剂量计位置的总和,请将其作为添加到groupby上

pd.DataFrame( df.groupby(['Participant Name, Number', 'Dosimeter Location']).Total_DDE.sum() )

相关内容

最新更新