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

Python代码:从多个csv文件中提取单个列以另存为新的csv文件,同时列头==源csv文件

诸修伟
2023-03-14

我想从多个(100秒)CSV文件中读取特定列,以创建新的CSV文件。列标题将使用提取列的源文件名重命名。我已经为此编写了一些代码行,但是,在没有扩展名的情况下,我无法有效地重命名列标题(请参阅附件)。我会感谢你的帮助。谢谢。

import os
import csv
import pandas as pd

folder = "C:/Users/Doc/Data"
files = os.scandir(folder)

E2080 = []
with os.scandir(folder) as files:
    for file in files:
        #print(file)
        df = pd.read_csv(file, index_col=None)
        dist = {file: (df['lnt_dist'])}
        E = pd.DataFrame(dist)
        E2080.append(E)

dist = pd.concat(E2080, ignore_index=False, axis=1)
dist.head()
dist.to_csv('E2080', index=False)

共有1个答案

高正初
2023-03-14

您应该使用file.name而不是file来获取带有名称的string

使用string,您可以使用。拆分(".")获得没有扩展名的名称。

for file in os.scandir(folder):
    print(file.name, '=>', file.name.split(".")[0])

或者您可以使用pathlib。路径而不是操作系统。scandir()以拥有更多功能

for file in pathlib.Path('test').iterdir():
    print(file.name, '=>', file.stem)
 类似资料:
  • 如何从CSV文件中提取列? 我对Java有点陌生。你如何从csv文件中提取特定列。例如,如果我有这个数据: 如何提取第一列和第三列?我能够读取整个CSV文件,但我想从中提取特定的列。

  • 在这里你可以看到我正在处理的一些文件。 与我最相似的问题是这个问题(将一个文本文件文件夹合并到一个CSV中,每个内容都在一个单元格中),但我无法实现那里提出的任何解决方案。 我尝试的最后一个是Nathaniel Verhaaren在前面提到的问题中提出的Python代码,但我得到了与问题作者完全相同的错误(即使在实施了一些建议之后): 与我类似的其他问题(例如,Python:将多个。txt文件解析

  • 问题内容: 我想做的是使用matplotlib,basemap,python等在地图上绘制特定风暴的纬度和经度值。我的问题是我正在尝试提取风暴的纬度,经度和名称。 map,但在第41-44行之间一直出现错误,在该行中尝试将列提取到列表中。有人可以帮我解决这个问题。提前致谢。 该文件如下所示: 我希望列表如下所示: 这是我到目前为止的内容: 这是我收到的最后一条错误消息/回溯: 追溯(最近一次通话)

  • 如何在JMeter中将一个csv文件循环到另一个csv文件,其中第一个csv文件包含所有登录数据,另一个csv文件包含交易数据。我应该运行1个出纳员应该处理30笔交易的地方。

  • 给定一个文件夹,其中包含多个具有不同列长度的csv文件 必须使用python将它们合并到单个csv文件中,并将文件名打印为一列。 输入:https://www.dropbox.com/sh/1mbgjtrr6t069w1/AADC3ZrRZf33QBil63m1mxz_a?dl=0 输出:

  • 问题内容: 我尝试在Java中删除csv文件中的列。 例如,我有这个csv文件 我想要下一个操作后:(删除csvFile,2)将是: 我发现只有调用行而不是列的操作。 问题答案: 删除CSV文件中一列的唯一方法是删除整个文件(即文件的每一行)的标题和该列的信息。即使您使用第三方库,它也会在内部进行。