【发布时间】:2019-08-22 09:13:22
【问题描述】:
背景: 带有映射的 Excel 工作表。一般外观如下:
Req1 Req2 Req3 ..... Req10
A B A B A B A B
Id Text
1 abc x x x
2 def x
3 ghi x
4 jkl x
5 mno x
问题:如何只提取标有“x”的列?也就是说,不会考虑列 Req3。
挑战:列标题是原始 excel 中的合并单元格 - 与“文本”列的级别不同。
已经尝试过:研究 .groupby() 函数和 for 循环。但不确定如何继续使用任何一个选项(如果它们适用)。
IDEA:(更新)将文件拆分为两个单独的数据框(Text + Reqs)。删除导致标题放置差异的行。然后重新加入单独的数据帧----但是如何?
已经将整个 excel 文件转换为 .csv 并在 jupyternotebooks 代码中作为数据框打开。也可以提取单独的列,但由于列标题之间的差异,无法让“ReqN”成为数据框的一部分。
预期结果:Pandas 数据框包含“Text”列和“x”出现的“ReqN”列。 (对标记的是A还是B不感兴趣。)
下一步:(如果与上述解决方案相关)以某种方式将“Text”+对应的“ReqN”存储为 csv 文件。
python 和 pandas 的新手。非常感谢对代码的一些指导。在 SO 上找到了几个示例,但它们在某处或其他地方都达不到要求。
【问题讨论】:
-
您能否准确地显示工作表在 Excel 中的样子,也许是图像?
A、B等是否在单独的列中,而Req1、Req2是否在一个大的合并单元格中? -
@Tom,没错。设法在帖子中添加指向屏幕截图的链接。
-
您能否也发布您尝试导入数据时得到的结果,即
pd.read_csv()或类似名称? -
并不是说有错误,我的意思是发帖,比如说,
df.head(),这样更容易看到你在做什么。 -
@Tom,感谢您的参与。不幸的是,我无法在公共论坛上发布这些数据。然而,我设法为解决方案找到了一种不同的方法。回答如下。似乎至少现在可以完成这项工作:)
标签: python-3.x pandas dataframe artificial-intelligence