python-3.x - 我使用带有 python 的 pandas 编写了代码。我想将代码转换为一个新的数据框,输出分为两列
问题描述
我从一个数据框转到另一个数据框,并对每个唯一人员的姓名旁边的列执行计算。现在我在它旁边有一个名称和计算的输出,我想将它分成两列并将其放入数据框中并打印。我在想我应该将整个 for 循环放入字典然后放入数据框,但不确定如何做到这一点。我是这方面的初学者,非常感谢人们的帮助。请参阅下面 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() )
推荐阅读
- c++ - 获取目录的区分大小写的性质
- arduino - MPU-6050 在仅移动一个轴时更改 X 和 Z 轴值
- javascript - 有没有办法用jsPDF使表格单元格的文本居中?
- vba - 如何使用 vba 从 excel 表中创建例如 5 个文件夹?
- python - 未找到密钥:_PYSPARK_DRIVER_CALLBACK_HOST
- javascript - XMLHttpRequest POST 给出媒体文件错误
- spring-security - Spring Boot & Security OAuth2 令牌访问问题
- java - Mockito FindIterable
- arm - Qbs:在构建 arm 目标时运行 googletests
- docker - 在 docker 容器内安装包管理器,用于像“prom/busybox”这样的图像