Python 3.x 从python3中的csv文件中删除特定列
需要删除多个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
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。