首页 文章

使用read_csv只读取奇数/数字列

提问于
浏览
1

跟进Keep csv feature labels for LDA pca我决定忽略PCA减少的功能名称 . 我正在使用pandas read_csv()函数,并希望忽略字符串/文本列,这些列恰好是每个奇数列 . 因此,在我的csv中读取时,要么删除字符串列或奇数列的过滤器会有所帮助

1 回答

  • 1

    一种方法是读取列标签,然后通过pd.read_csvusecols 参数获取每隔一列 . 这假设您的列标签是唯一的,但由于您没有阅读昂贵的 object dtype系列,因此效率很高 .

    import pandas as pd
    from io import StringIO
    
    x = """some,header,labels,for,each,column
    1,hello,2,test,3,another
    4,another,5,test,6,row
    7,and,8,one,9,more"""
    
    # get column names, replace StringIO(x) with 'file.csv'
    df_cols = pd.read_csv(StringIO(x), nrows=0).columns
    
    # skip even columns, replace StringIO(x) with 'file.csv'
    df = pd.read_csv(StringIO(x), usecols=df_cols[::2])
    
    print(df)
    
       some  labels  each
    0     1       2     3
    1     4       5     6
    2     7       8     9
    

相关问题