当前位置: 首页 > 知识库问答 >
问题:

使用python处理我的csv文件时有两个问题

双恩
2023-03-14

1) 在创建CSV文件时对标题(列)进行排序

2)在CSV文件中添加新的头(列)

对于第一个问题,我有一些CSV文件,每个文件都有一列,然后我把这些CSV文件合并在一起。在最后的CSV文件中,标题的顺序不正确。

正确的顺序应该是a,b,c 但是最后一个CSV文件的标题是c,b,a。如何对标题进行排序?

    # create final csv file iteration
    for i in range(lenList - 1):
        newcsv = pd.read_csv(csv_list[i + 1])
        csv_out = newcsv.merge(oldcsv, on=['Time'], how="outer", sort=True)
        oldcsv = csv_out

    # saves the final csv file
    output_file = "../build/*.csv"
    oldcsv.to_csv(output_file, index=False)

对于第二个问题,当我创建CSV文件时,大约有18列,有些有17列。但它们都应该有18列。

例如,file1有a、b、c、d列。文件2有列a、b、c

我需要他们有相同数量的柱子。所以我需要在file2中添加一个空列。

共有1个答案

麹耘豪
2023-03-14

是的,您可以使用use_cols作为read_csv的参数来更改列的顺序:

usecols:类似列表或可调用,默认为无

返回列的子集。如果类列表,则所有元素必须是位置的(即文档列中的整数索引)或字符串,这些字符串对应于用户以名称提供的列名或从文档标题行推断的列名。例如,有效的类似列表的usecols参数将是[0,1,2]或['foo','bar','baz']。元素顺序被忽略,因此usecols=[0,1]与[1,0]相同。要从保留元素顺序的数据实例化DataFrame,请使用pd.read_csv(data,usecols=['foo','bar'])[['foo','bar']]中的列的['foo','bar']顺序或pd.read_csv(data,usecols=['foo','bar'])[['bar','foo']]用于['bar','foo']的顺序。

如果可调用,将根据列名对可调用函数求值,返回可调用函数求值为True的名称。有效的可调用参数的一个例子是['AAA'、'BBB'、'DDD']中的lambda x:x.upper()。使用此参数会导致更快的解析时间和更低的内存使用率。

https://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html

对于空列,可以添加一个空列

 类似资料:
  • 我正在尝试处理两个文件,并将它们的数据持久化到数据库中。我使用的是java dsl,而不是springs。 为了更好地解释这个场景: 我正在读取两个文件,并对它们进行处理,以便将它们的数据上载到sql数据库中。为此我执行的步骤如下 null 现在bindy正在尝试将格式映射到父类文件,但是,当它获取时,它将其映射到在同一包下定义的model1和model2。但是,它应该只将它映射到一个类。如何强制

  • 我有一个商业案例,使用Spring batch将多个csv文件(每个文件大约1000个,包含1000条记录)合并成单个csv。 请帮助我提供方法和性能方面的指导和解决方案。 到目前为止,我已经尝试了两种方法, 方法1。 Tasklet chunk与multiResourceItemReader一起从目录中读取文件,FlatFileItemWriter作为项目编写器。 这里的问题是,它的处理速度非常

  • 本文向大家介绍使用Python的netrc文件处理,包括了使用Python的netrc文件处理的使用技巧和注意事项,需要的朋友参考一下 python中的netrc类用于从用户家庭环境的unix系统中的.netrc文件中读取数据。这些是隐藏文件,包含用户的登录凭据详细信息。这对于ftp,curl等工具成功读取.netrc文件并将其用于操作很有帮助。 以下程序显示了如何使用python的netrc模块

  • 本文向大家介绍python使用pandas处理excel文件转为csv文件的方法示例,包括了python使用pandas处理excel文件转为csv文件的方法示例的使用技巧和注意事项,需要的朋友参考一下 由于客户提供的是excel文件,在使用时期望使用csv文件格式,且对某些字段内容需要做一些处理,如从某个字段中固定的几位抽取出来,独立作为一个字段等,下面记录下使用acaconda处理的过程; (

  • 问题内容: 我有成千上万的文本文件,希望通过各种方式进行解析。我想将输出保存到单个文件而不会出现同步问题。我一直在使用多处理池来节省时间,但是我不知道如何结合使用池和队列。 以下代码将保存infile名称以及文件中连续的“ x”的最大数量。但是,我希望所有进程将结果保存到同一文件中,而不是像示例中那样保存到不同文件中。任何帮助,将不胜感激。 问题答案: 多处理池为您实现了一个队列。只需使用将工作程

  • 问题内容: 有人可以为我指出如何在python中打开.mdb文件的正确方向吗?我通常喜欢包含一些代码以开始讨论,但是我不知道从哪里开始。我与mysql一起使用python。我想知道是否有一种以类似方式使用.mdb文件的方法? 问题答案: 以下是我为另一个SO问题编写的一些代码。 它需要第三方的pyodbc模块。 这个非常简单的示例将连接到表并将结果导出到文件。 如果您有任何其他更具体的需求,请随时