CSV文件重新格式化

2024-07-08 12:10:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python新手,正在尝试重新格式化CSV文件,它没有分隔符,所以所有数据都在其中 第一列。该文件非常大,例如,excel的大小为1 gb。文件格式如下:, 请注意,旧文件中的时间顺序是从最新到最旧颠倒的,是否要在新文件中反转它 从最老到最新

old file is
   tagname1 tagname2 value1(t)  value2(t) timestamp(t)
   tagname1 tagname2 value1(t-1)  value2(t-1) timestamp(t-1)
   tagname1 tagname2 value1(t-2)  value2(t-2) timestamp(t-2)

desired file format
   timestamp(t-2)    tagname1       tagname2   value1(t-2)    value2(t-2)
   timestamp(t-1)    tagname1       tagname2   value1(t-1)    value2(t-1)
   timestamp(t)      tagname1       tagname2   value1(t)    value2(t)

谢谢


Tags: 文件csv数据顺序时间exceltimestampfile
2条回答

您可以使用著名的pandas库导入和修改.csv文件。这是非常流行和使用非常频繁。下面是一些代码:

import pandas as pd

data = pd.read_csv("file.csv", sep=" ", header=None) # 1
data = data.iloc[::-1] # 2
data = data[[4, 0, 1, 2, 3]] # 3

data.to_csv("out.csv", sep=" ", header=None, index=None) # 4
  1. 读取.csv文件。
    • 您的文件没有任何列名,因此我们传递header=None
    • 使用空格作为分隔符:sep=" "
  2. 反向数组,最后一行将是第一行
  3. 更改列顺序
  4. 将数据导出到另一个.csv文件。
    • 指定分隔字符:sep=" "
    • 我们不需要任何特殊的行索引或标题:header=None, index=None

你可以用awk来做。此命令重新排列列并按第一列排序,并将结果写入new.csv

awk -F' ' '{print $5" "$1" "$2" "$3" "$4}' OFS=, "old.csv" | sort > new.csv

对于python解决方案,可以使用Python - re-ordering columns in a csv重新排列列,但是使用sort进行内存有限的排序要简单得多

相关问题 更多 >

    热门问题