Python 我想结合csv';s、 删除行而仅保留某些列

Python 我想结合csv';s、 删除行而仅保留某些列,python,pandas,Python,Pandas,这是我目前掌握的代码: import pandas as pd import glob, os os.chdir("L:/FMData/") results = pd.DataFrame([]) for counter, file in enumerate(glob.glob("F5331_FM001**")): namedf = pd.read_csv(file, skiprows=[1,2,3,4,5,6,7], index_col=[1], usecols=[1,2])

这是我目前掌握的代码:

import pandas as pd

import glob, os

os.chdir("L:/FMData/")

results = pd.DataFrame([])

for counter, file in enumerate(glob.glob("F5331_FM001**")):

    namedf = pd.read_csv(file, skiprows=[1,2,3,4,5,6,7], index_col=[1], usecols=[1,2])

    results = results.append(namedf)

    results.to_csv('L:/FMData/FM001_D/FM5331_FM001_D.csv')
但是,这会按照指示生成新文档,但不会将任何数据复制到其中。我想在某个位置查找文件,文件名沿FM001行,合并它们,跳过每个csv中的前7行,并在新文件中只保留第1列和第2列。有人能帮我写代码吗


提前感谢

这段代码在我这方面很有效(使用Linux和Python 3),它在一个csv文件中填充数据

在读取csv后添加一个
print
,查看您的csv文件是否真的读取了任何数据,否则不会写入任何内容,如下所示:

namedf = pd.read_csv(file)
print(namedf)
results = results.append(namedf)
它添加第1行(可能是因为它被认为是标题),然后跳过7行,然后继续,这是我对csv文件的结果,刚刚从一行写到十一行: F5331_FM001.csv 一个
零九
十分之一
211

补充: 如果print(namedf)没有显示任何内容,请检查输入文件。
python程序正在L:/FMData/中查找您的文件。您确定您的文件位于该目录中吗?您可以通过使用os.chdir命令添加正确的路径来更改目录

要组合多个csv文件,应创建数据帧列表。然后通过
pd.concat
在一个步骤中组合列表中的数据帧。这比附加到现有数据帧要有效得多

此外,您需要将结果写入
for
循环之外的文件中

例如:

results = []
for counter, file in enumerate(glob.glob("F5331_FM001**")):

    namedf = pd.read_csv(file, skiprows=[1,2,3,4,5,6,7], index_col=[1], usecols=[1,2])

    results = results.append(namedf)

df = pd.concat(results, axis=0)
df.to_csv('L:/FMData/FM001_D/FM5331_FM001_D.csv')

to_csv应处于循环外。或者模式必须是追加。感谢您的回复,当我输入“打印(namedf)”时,IPy中没有返回任何内容,您知道可能有什么问题吗?另外:如果打印(namedf)没有显示任何内容,请检查您的输入文件。python程序正在L:/FMData/中查找您的文件。您确定您的文件位于该目录中吗?您可以通过使用os.chdir命令添加正确的路径来更改目录。在for循环中添加print(file)以确保文件已被拾取。我已将我的代码替换为此代码,它返回一个错误:“no attribute to append?”@LMC94,抱歉,我无法复制。您可能希望对您的问题进行完整的回溯,以了解您的错误。