Python [Pandas / docx]:根据通用名称合并两行

问题描述

我正在尝试使用docx-python和pandas在python3中编写脚本,以执行以下操作:

  1. 从csv文件获取输入
  2. 合并C列的通用值并将每个值添加到docx
  3. 导出docx

我的原始csv如下:

SN. Name    Instance    Severity
1   Name1   file1:line1 CRITICAL
2   Name1   file2:line3 CRITICAL
3   Name2   file1:line1 Low
4   Name2   file1:line3 Low
and so on...

,我希望我的docx更好: ` [1]:https://i.stack.imgur.com/1xNc0.png

我无法弄清楚如何使用熊猫根据“名称”过滤“实例”,然后打印到docx中。

谢谢。

解决方法

下面的代码将选择相关的列,并根据“名称”和“严重性”进行分组,并将实例添加在一起

df2 = df[["Name","Instance","Severity"]]
df2["Instance"] = df2.groupby(['Name','Severity'])['Instance'].transform(lambda x: '\n'.join(x))

最后,删除重复项并进行转换以获得所需的输出

df2 = df2.drop_duplicates()
df2 = df2.T