首頁  >  問答  >  主體

python對8000行csv新增列

想要對已有的8000多列csv,添加2000多列,由於文件過大,不能一次性加載到內存中,所以想一列一列的寫入到已有的csv中,試了很多中方法,都不行,請問該怎麼解決

给我你的怀抱给我你的怀抱2711 天前899

全部回覆(2)我來回復

  • PHPz

    PHPz2017-05-18 10:56:39

    按行讀入,然後加入這些列啊。 CSV一般都是逗號分隔的文字文件,依照文字文件的處理方法處理就好。一般流程是:
    1.讀入一行
    2.以逗號切分字串為數組
    3.給數組加上你想要的列元素
    4.以逗號為分隔連接數組
    5.將這行寫入新檔案
    6.一直到檔案結尾即可。

    回覆
    0
  • 怪我咯

    怪我咯2017-05-18 10:56:39

    pandas有分塊讀取,範例程式碼

    import pandas as pd
    
    reader = pd.read_csv('a.csv', iterator=True)
    
    header = True
    try:
        df = reader.get_chunk(10000)
    
        #循环加添新列到df
        df['新列'] = '值'
    
        #把记录追加到新csv
        df.to_csv('b.csv', mode='a', index=False, header=header)
        
        #文件头只写一次
        header = False
    
    except StopIteration:
        pass
    

    回覆
    0
  • 取消回覆