【问题标题】:How do I copy columns from one CSV file to another CSV file?如何将列从一个 CSV 文件复制到另一个 CSV 文件?
【发布时间】:2022-01-04 03:01:04
【问题描述】:

我有一个 input.csv 文件,我只想将呼叫电话为 92 的那些行复制到 output.csv 文件中。

这就是 input.csv 的样子

calling phone;receiving phone;date;price
49;45;2020-11-08;12
65;39;2020-06-21;8
40;35;2020-01-10;4
28;56;2020-07-19;10
46;68;2020-08-22;14
65;92;2020-05-28;1
11;12;2020-07-11;11
70;76;2020-02-16;15
92;88;2020-04-24;0
92;84;2021-01-19;19
45;76;2020-03-17;11
78;67;2020-08-11;2

【问题讨论】:

  • 加载到 Excel,按第一列排序,删除不需要的行并保存。 10 秒。

标签: python python-3.x csv text-files file-handling


【解决方案1】:

你可以这样做

import pandas as pd

df = pd.read_csv("input.csv", delimiter=";")

output = df.where(df["calling phone"] == 92).dropna()

output.to_csv("output.csv", sep=";")

代码的作用是它使用 pandas 导入 .csv 文件,过滤文件中与您要查找的编号匹配的行,然后将其导出到另一个 .csv 文件。

您也可以直接使用正则表达式实现相同的目标,但我想这会使事情复杂化一点。希望对您有所帮助。

【讨论】:

    【解决方案2】:

    你可以像这样用纯 Python 做到这一点:

    import csv
    
    
    out = []
    with open("input.csv", newline="") as csvfile:
        reader = csv.reader(csvfile, delimiter=";")
        # Get the header.
        out.append(next(reader))
        for row in reader:
            if row[0] == "92":
                out.append(row)
    
    
    with open("out.csv", "w", newline="") as csvfile:
        writer = csv.writer(csvfile, delimiter=";")
        writer.writerows(out)
    

    这是运行该脚本后的out.csv

    calling phone;receiving phone;date;price
    92;88;2020-04-24;0
    92;84;2021-01-19;19
    

    【讨论】:

      猜你喜欢
      • 2015-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-29
      • 1970-01-01
      • 2021-02-26
      • 2021-09-30
      相关资源
      最近更新 更多