Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 从python3中的csv文件中删除特定列_Python 3.x_Csv - Fatal编程技术网

Python 3.x 从python3中的csv文件中删除特定列

Python 3.x 从python3中的csv文件中删除特定列,python-3.x,csv,Python 3.x,Csv,需要删除多个csv文件的某些特定列和行(按索引),而不创建新文件 对于下面的代码,它将在每行之后提供新的空行输出 import csv with open('file.csv') as fd: reader = csv.reader(fd) valid_rows = [row for idx, row in enumerate(reader) if idx != 0] with open('file.csv', 'w') as out: csv.writer(out).wr

需要删除多个csv文件的某些特定列和行(按索引),而不创建新文件

对于下面的代码,它将在每行之后提供新的空行输出

import csv

with open('file.csv') as fd:
   reader = csv.reader(fd)
   valid_rows = [row for idx, row in enumerate(reader) if idx != 0]

with open('file.csv', 'w') as out:
   csv.writer(out).writerows(valid_rows)

做这件事最简单的方法是什么(可能是其他python库)?

由于您不希望生成任何新的csv文件,并且希望数据执行操作,我建议您使用。使用此框架中的函数

考虑以下示例:

Sample.csv:

col1,col2,col3,col4
1,2,3,4
5,6,7,8
9,10,11,12
13,14,15,16
17,18,19,20
代码:

要删除列,请执行以下操作:

df.drop('col3', axis = 1, inplace = True)
df内容:

   col1     col2    col4
0   1   2   4
1   5   6   8
2   9   10  12
3   13  14  16
4   17  18  20
   col1     col2    col4
0   1   2   4
2   9   10  12
3   13  14  16
要删除行,请执行以下操作:

df.drop(df.index[[1,4]], inplace = True)
df内容:

   col1     col2    col4
0   1   2   4
1   5   6   8
2   9   10  12
3   13  14  16
4   17  18  20
   col1     col2    col4
0   1   2   4
2   9   10  12
3   13  14  16
最后,要保存已编辑的csv文件,请执行以下操作:

df.to_csv('new_sample.csv', index = False)

您还可以提供示例csv吗?@wp78de的可能副本需要从源文件中删除列/行,而不创建新文件。但是您要写入文件-无论是相同的还是新文件。您好,此解决方案仅用于读取数据。我还需要对csv文件进行更改(删除行和列)。@ShailaZaman,使用
inplace
选项进行更改。我已经编辑了代码。检查它,请您详细说明df在哪里变为无?我给出的代码是一个工作示例。(检查您是否没有错误地删除所有列或行)这是我的错误。它正在工作。非常感谢你。请将您的“写入csv”行编辑为下一行好吗?df.to_csv('sample.csv',index=False)它正在保存索引为df的csv。