【问题标题】:How to merge columns with no header name in a python script?如何在python脚本中合并没有标题名称的列?
【发布时间】:2017-01-20 14:57:19
【问题描述】:

我的 Python 脚本解析了 Excel 文件的一些文本。它从 Excel 文件中去除空格并更改分隔符 (来自 " : "--> " , ")

我的脚本输出到一个 CSV 文件。大部分数据看起来像this (Excel中的数据是什么样的)

由于有一两个额外的逗号,由一列分隔。

CSV == 逗号分隔值。

我曾尝试使用 if 语句添加或减去逗号以尝试支持它,但它最终完全打乱了它最初的相对顺序。让我发疯!

为了尝试另一种方式,使用 pip 安装了 pandas 库(一个数据操作库)。

是否可以在单个数据框中合并具有 no 列标题的列?关于单独的 DataFrames 有很多建议,但对于一个单独的 DataFrames 有很多建议。

此外,如何在保留行位置的同时合并列。电子邮件位于正确的行位置,但不在列位置。

或者我完全走错了路,对于一个简单的解析脚本来说,熊猫是不是矫枉过正?在尝试完成脚本的过程中,我一直在学习 python,所以我可能错过了一种简单的方法。

一些示例数据:

C5XXEmployeeNumXX,C5XXEmployeeNumXX,JohnSmith,1,,John,,Smith,,IT Supp.Centre,EU,,London1,,,59XXXX,ITServiceDesk,LOND01,,,,Notmaintained,,,,,,,,john.smith@company.com,

解析逻辑片段

    for line in f:
    
    #finds the identifier for users
    if ':LON ' in line:
        
        #parsing logic.
        #Delimiters are swapped. Whitespace is scrubbed
        line = line.replace(':', ',')
        line = line.replace(' ', '')

【问题讨论】:

  • 您可以发布示例数据吗?
  • @IanS 当然。我会在问题中发布。
  • 您能否也展示您的代码并准确解释您对它的作用不满意的原因?
  • @IanS 问题是有很多行,其中一些缺少条目。当空白被擦除时,条目的一部分不在单个列中。另一个团队想要将我的脚本输出用于 API,并且需要按顺序排列。几乎所有的数据都由一个空列分隔,当我尝试更改逗号的数量时,它变得太难以管理并且分散得很远。我正在寻找有关如何尝试在单个列下合并分隔值的建议或建议。
  • @IanS 我希望能澄清一点。 :)

标签: python excel csv pandas


【解决方案1】:

您可以使用您选择的分隔符/定界符。查看:https://docs.python.org/2/library/csv.html#csv.Dialect.delimiter

另外,关于顺序,如果您在列表中阅读应该没问题,但如果您正在阅读 dict 中一行的内容,那么不保留顺序是正常的。

【讨论】:

    猜你喜欢
    • 2020-11-14
    • 1970-01-01
    • 2020-04-08
    • 2020-12-20
    • 2017-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多