删除同一目录中多个CSV文件中的前两列和最后一列
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了删除同一目录中多个CSV文件中的前两列和最后一列相关的知识,希望对你有一定的参考价值。
我想知道从具有相同列结构的多个CSV文件中删除前两列和最后一列的最佳方法是什么?
我已经尝试过awk和pandas,但似乎它只给我一个选择,可以一次从一个input.csv文件中删除列并将其另存为output.csv。如何在不创建output.csv但覆盖现有文件的情况下删除多个文件中的1,2,7列?
我的CSV文件如下所示,其中Col1,Col2,Col7完全为空(包括列标题)。
Col1 Col2 Col3 Col4 Col5 Col6 Col7
some_data some_data some_data some_data
some_data some_data some_data some_data
some_data some_data some_data some_data
和所需的输出:
Col3 Col4 Col5 Col6
some_data some_data some_data some_data
some_data some_data some_data some_data
some_data some_data some_data some_data
谢谢!
到目前为止,我的代码...
import pandas as pd
import os
import fileinput
from dateutil import parser
# specifying directory and determining files for my loop
path = r'/path/to/my/files'
files = [os.path.join(path,data_file) for data_file in sorted(os.listdir(path))]
#trying to read each csv file separately and delete columns from it
df = pd.read_csv(files)
# specifying columns to delete
first_column = df.columns[0]
second_column = df.columns[1]
last_column = df.columns[7]
# Delete my columns
df = df.drop([first_column, second_column, last_column], axis=1)
# trying to overwrite existing files after column removal instead of creating new files i.e. output.csv
df.to_csv(files, index=False)
答案
cd /path/to/my/file
for file in *.csv
do
cut -d, -f3,4,5,6,7 "$file" > "new_$file"
done
以上是关于删除同一目录中多个CSV文件中的前两列和最后一列的主要内容,如果未能解决你的问题,请参考以下文章
是否可以使表格的前两列与其内容一样宽,而第三列占据剩余空间?