如何使用 python 遍历目录并从所有 csvs 中删除特定列?
How do use python to iterate through a directory and delete specific columns from all csvs?
我有一个包含多个 csvs 的目录。
files = glob('C:/Users/jj/Desktop/Bulk_Wav/*.csv')
每个 csv 都有相同的以下列。下面的 Reprex-
yes no maybe ofcourse
1 2 3 4
我希望我的脚本遍历文件夹中的所有 csvs 并可能删除列。
你的意思是:
files = glob('C:/Users/jj/Desktop/Bulk_Wav/*.csv')
for filename in files:
df = pd.read_csv(filename)
df = df.drop(['maybe ', 'ofcourse'], axis=1)
df.to_csv(filename)
此代码将删除 maybe
和 ofcourse
列并将其保存回 csv。
如果 glob
为您提供了文件路径,您可以使用 pandas
执行以下操作:
import pandas as pd
files = glob('C:/Users/jj/Desktop/Bulk_Wav/*.csv')
drop = ['maybe ', 'ofcourse']
for file in files:
df = pd.read_csv(file)
for col in drop:
if col in df:
df = df.drop(col, axis=1)
df.to_csv(file)
或者,如果您想要一种更简洁的方式来避免从 drop 中获取 KeyError
s,您可以这样做:
import pandas as pd
files = glob('C:/Users/jj/Desktop/Bulk_Wav/*.csv')
drop = ['maybe ', 'ofcourse']
for file in files:
df = pd.read_csv(file)
df = df.drop([c for c in drop if c in df], axis=1)
df.to_csv(file)
您可以使用 panda 将 csv 文件读取到数据框,然后使用 drop() 删除特定列。如下所示:
df = pd.read_csv(csv_filename)
df.drop(['maybe', 'ofcourse'], axis=1)
import pandas as pd
from glob import glob
files = glob(r'C:/Users/jj/Desktop/Bulk_Wav/*.csv')
for filename in files:
df = pd.read_csv(filename, sep='\t')
df.drop(['maybe', 'ofcourse'], axis=1, inplace=True)
df.to_csv(filename, sep='\t', index=False)
如果文件看起来与您那里的完全一样,那么可能是这样的
我有一个包含多个 csvs 的目录。
files = glob('C:/Users/jj/Desktop/Bulk_Wav/*.csv')
每个 csv 都有相同的以下列。下面的 Reprex-
yes no maybe ofcourse
1 2 3 4
我希望我的脚本遍历文件夹中的所有 csvs 并可能删除列。
你的意思是:
files = glob('C:/Users/jj/Desktop/Bulk_Wav/*.csv')
for filename in files:
df = pd.read_csv(filename)
df = df.drop(['maybe ', 'ofcourse'], axis=1)
df.to_csv(filename)
此代码将删除 maybe
和 ofcourse
列并将其保存回 csv。
如果 glob
为您提供了文件路径,您可以使用 pandas
执行以下操作:
import pandas as pd
files = glob('C:/Users/jj/Desktop/Bulk_Wav/*.csv')
drop = ['maybe ', 'ofcourse']
for file in files:
df = pd.read_csv(file)
for col in drop:
if col in df:
df = df.drop(col, axis=1)
df.to_csv(file)
或者,如果您想要一种更简洁的方式来避免从 drop 中获取 KeyError
s,您可以这样做:
import pandas as pd
files = glob('C:/Users/jj/Desktop/Bulk_Wav/*.csv')
drop = ['maybe ', 'ofcourse']
for file in files:
df = pd.read_csv(file)
df = df.drop([c for c in drop if c in df], axis=1)
df.to_csv(file)
您可以使用 panda 将 csv 文件读取到数据框,然后使用 drop() 删除特定列。如下所示:
df = pd.read_csv(csv_filename)
df.drop(['maybe', 'ofcourse'], axis=1)
import pandas as pd
from glob import glob
files = glob(r'C:/Users/jj/Desktop/Bulk_Wav/*.csv')
for filename in files:
df = pd.read_csv(filename, sep='\t')
df.drop(['maybe', 'ofcourse'], axis=1, inplace=True)
df.to_csv(filename, sep='\t', index=False)
如果文件看起来与您那里的完全一样,那么可能是这样的