【问题标题】:How do use python to iterate through a directory and delete specific columns from all csvs?如何使用python遍历目录并从所有csv中删除特定列?
【发布时间】:2021-07-16 04:03:49
【问题描述】:

我有一个包含多个 csv 的目录。

files = glob('C:/Users/jj/Desktop/Bulk_Wav/*.csv')

每个 csv 都有相同的下面的列。下面的代表-

yes no maybe ofcourse
1   2  3     4

我希望我的脚本遍历文件夹中的所有 csv,并删除列,当然也可以。

【问题讨论】:

标签: python pandas iteration glob


【解决方案1】:

如果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 中获取 KeyErrors,您可以这样做:

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)

【讨论】:

    【解决方案2】:

    你的意思是:

    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)
    

    此代码将删除 maybeofcourse 列并将其保存回 csv。

    【讨论】:

      【解决方案3】:

      您可以使用 panda 将 csv 文件读取到数据框,然后使用 drop() 删除特定列。如下所示:

      df = pd.read_csv(csv_filename)
      df.drop(['maybe', 'ofcourse'], axis=1)
      

      【讨论】:

        【解决方案4】:
        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)
        

        如果文件看起来和你那里的完全一样,那么可能是这样的

        【讨论】:

          猜你喜欢
          • 2019-03-18
          • 2013-05-02
          • 2021-09-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-02-24
          • 2018-01-29
          • 2015-11-30
          相关资源
          最近更新 更多