【问题标题】:Shift row values in csv file using python使用python在csv文件中移动行值
【发布时间】:2021-09-07 08:59:44
【问题描述】:

用例说明: 有一个两行五列的 csv 文件。 csv 文件包含用户的数据,其中所有者列只有名字,后跟包括姓氏的语言,带有语言(英语)的电子邮件列和带有值电子邮件 ID 的空标题。用例的关键荧光笔是 - 列所有者应包含名字和姓氏,其余部分按照 csv 文件中给出的以下屏幕截图进行。 预期的最终结果:需要将第 2 行的值分别移动 (-1) 个单元格,该单元格应与 CSV 文件的标题值对齐。 使用 Python 代码尝试相同但没有运气。更深入地研究它以及对此的任何指导将不胜感激!

【问题讨论】:

  • 你尝试过编码吗?你在哪里 ?用 pandas 应该不难做到。
  • @coyote ,是的,用 pandas 尝试了几个代码。分享最新的代码片段:df = pd.read_csv('abcd.csv') df.shift(-1, axis = 1)。错误消息:文件“pandas/_libs/parsers.pyx”,第 545 行,在 pandas._libs.parsers.TextReader.__cinit__ EmptyDataError: No columns to parse from file 期待破解代码!

标签: python csv shift


【解决方案1】:

这将使用python将CSV文件中的第二行向左移动,您也可以将其更改为移动其他行

import csv

with open("yourfile.csv") as csv_file:
    csv_reader = csv.reader(csv_file)
    with open("newfile.csv", "w", newline='') as new_csv_file:
        csv_writer = csv.writer(new_csv_file)
        i = 0
        for row in csv_reader:
            if i == 1:
                row.pop(0)
            csv_writer.writerow(row)
            i += 1

【讨论】:

  • 感谢您的回复。尝试了上面的代码,但不幸的是它没有执行代码,而只是在输出控制台上显示以下内容:“runfile('D:/Hosting/Code/Script/script.py', wdir='D:/ Hosting/Code/Script')" 。我实际上是在寻找一种代码,它可以帮助将第二行的值向左移动而不是删除行。如果你可以调整相同的话,那就太好了。
  • 对不起,我写错了,这不会删除第二行,它会向左移动一个。我现在就编辑它。
  • 嘿@purp1e 非常感谢...似乎我们可以测试相同的代码并将其更进一步...太好了,您为相同的代码提供了帮助...:)
猜你喜欢
  • 2021-12-29
  • 2014-09-10
  • 1970-01-01
  • 2015-06-25
  • 1970-01-01
  • 2018-10-07
  • 2016-08-31
  • 1970-01-01
  • 2011-11-17
相关资源
最近更新 更多