【问题标题】:Split csv file only for first 4 delimiters then drop the rest for the line仅为前 4 个分隔符拆分 csv 文件,然后将其余部分删除为该行
【发布时间】:2021-11-14 09:42:54
【问题描述】:

我正在尝试逐行读取 csv 文件,并且只捕获每行的第一个 4 字段,其余的应该被删除。这是我的意见:

1   DateTime    Temp
2   02/11/2021 0:00 35
3   04/11/2021 0:00 32
4   05/11/2021 0:00 34
5   06/11/2021 0:00 28
6   07/11/2021 0:00 27.5 , 25
7   08/11/2021 0:00 25.6
8   09/11/2021 0:00 23.7, 
9   10/11/2021 0:00 21.8

所以68 行将有更多列,但是我想分别删除...,25...,68

我想得到以下输出:

这是我尝试在循环中使用的代码:

while True:
        line=f.readline()
        line=line.strip()
        if line == '': Break
        line=line.split(',', 2)
        entries.append(line)
print(entries)

但它不会以某种方式产生这种情况。

【问题讨论】:

  • 能否以纯文本格式显示您的 CSV 文件
  • @BrutusForcus 我按要求添加了文本信息
  • 看起来您想要第一个3 列?你可以使用line=line.split(',')[:3]而不是line=line.split(',', 2)

标签: python pandas split


【解决方案1】:
import pandas as pd 
df = pd.read_csv(file_path)
df["Temp"] = df["Temp"].apply(lambda item:int(str(item).split(",")[0].strip()))
df.to_csv(file_path)

使用 pandas 读取 csv 并更改 Temp Tag 并保存到 csv

【讨论】:

  • 感谢您的反馈,而不是我所追求的。我想根据分隔符拆分一行,并且只拆分特定的次数。所以导入的是文件,挑战在于如何逐行处理 DataFarame 并且只拆分特定数量的分隔符并删除其余部分
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-10-01
  • 2017-01-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-24
  • 1970-01-01
相关资源
最近更新 更多