【问题标题】:Sort out columns of multiple csv files at once in Python在 Python 中一次对多个 csv 文件的列进行排序
【发布时间】:2021-03-11 04:14:00
【问题描述】:

非常感谢您的帮助。

我有大约 200 个具有相同标题的 csv 文件。 例如标题是x , y, z, time, id, type

我想整理出所有csv文件的time列并再次保存。

这是迄今为止我尝试过的。但它不起作用。

你能帮帮我吗?

谢谢


import csv
import operator
import glob
import pandas as pd

data = dict() # filename : lists

path="./*.csv"
files=glob.glob(path)

for filename in files:
    # process each file
    with open(filename, 'r') as f:
        # read file to a list of lists
        lists = [row for row in csv.reader(f, delimiter=',')]
        # sort and save into a dict
        sorted_df = lists.sort_values(by=["time"], ascending=True)
        sorted_df.to_csv('%.csv', index=False)

【问题讨论】:

  • 如果要按时间排序,为什么要按“id”排序?
  • 那么,这不是你的真实代码吗?因为这将创建一个名为 %i.csv 的文件并一遍又一遍地覆盖它。
  • 是的,不是真的。我添加了 sorted_df 行来保存文件。
  • 那么,你的问题是什么?
  • 以前没有用。我解决了。非常感谢您的宝贵时间。

标签: python python-3.x dataframe csv


【解决方案1】:

我对@9​​87654321@ 模块了解不多,但是您使用的是pandas,它支持使用pd.read_csv 读取csv 文件,为什么不使用它..

for filename in files:
  df = pd.read_csv(filename)
  df.sort_values('time', inplace=True)
  df.to_csv(filename, index=False)

这将覆盖所有按时间排序的具有相同数据的文件。

【讨论】:

    猜你喜欢
    • 2017-04-16
    • 2015-10-21
    • 2015-06-14
    • 1970-01-01
    • 2014-07-26
    • 2017-06-23
    • 1970-01-01
    • 2011-12-23
    • 2016-03-16
    相关资源
    最近更新 更多