亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將大型 CSV 加載到 Python 中,選擇特定列并另存為新 CSV?

如何將大型 CSV 加載到 Python 中,選擇特定列并另存為新 CSV?

慕蓋茨4494581 2022-12-06 16:29:22
我有一個 CSV 文件,大約有 800 萬行,大小約為 3gb。我有一個要保存到新 CSV 中的特定列的列表。我一直在嘗試將 Panda 與 Python 結合使用,但我就是做不好。這是我一直在使用的代碼:import pandas as pddf = pd.read_csv('MyFile.csv' , usecols = ['AAA','BBB','CCC',])在最后一條命令之后,終端行返回 3 個點,如“...”。然后我嘗試輸入這個命令df.to_csv('NewFile.csv', index=False)但我收到以下錯誤:file "<stdin>", line 2  df.to_csv('NewFile.csv', index=False)   ^SyntaxError: invalid syntax任何幫助將不勝感激。謝謝你。編輯:這就是整個終端屏幕文本。Python 3.7.6 (default, Jan  8 2020, 20:23:39) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32Type "help", "copyright", "credits" or "license" for more information.>>> df=pd.read_csv('MyFile.csv' , usecols = ['AAA','BBB','CCC',]... pd.df.to_csv('NewFile.csv', index=False)?  File "<stdin>", line 2    pd.df.to_csv('NewFile.csv', index=False)?     ^SyntaxError: invalid syntax>>>
查看完整描述

4 回答

?
冉冉說

TA貢獻1877條經驗 獲得超1個贊

你有語法錯誤,因為你沒有關閉終端下一行的括號

>>> df=pd.read_csv('MyFile.csv' , usecols = ['AAA','BBB','CCC',]


查看完整回答
反對 回復 2022-12-06
?
慕勒3428872

TA貢獻1848條經驗 獲得超6個贊

將 3GB 的文件讀入內存不是一個好主意(這就是 pandas 會做的)。我建議使用流式傳輸工具,例如awk先過濾您的數據。



查看完整回答
反對 回復 2022-12-06
?
MM們

TA貢獻1886條經驗 獲得超2個贊

您是否嘗試過類似的東西:

df.to_csv (r'C:\Users\Ron\Desktop\NewFile.csv', index = False)

替換C:\Users\Ron\Desktop\NewFile.csv為輸出文件名。


查看完整回答
反對 回復 2022-12-06
?
繁星淼淼

TA貢獻1775條經驗 獲得超11個贊

我找到了這個解決方案。我找到了一個代碼來刪除我不想要的列。所以復制了 CSV 并做到了。這是我使用的 Py 文件:


import csv


input_file = 'input.csv'

output_file = 'output.csv'

cols_to_remove = [1, 4, 10, 11] # Column indexes to be removed (starts at 0)


cols_to_remove = sorted(cols_to_remove, reverse=True) # Reverse so we remove from              the end first

row_count = 0 # Current amount of rows processed


with open(input_file, "r") as source:

reader = csv.reader(source)

with open(output_file, "w", newline='') as result:

    writer = csv.writer(result)

    for row in reader:

        row_count += 1

        print('\r{0}'.format(row_count), end='') # Print rows processed

        for col_index in cols_to_remove:

            del row[col_index]

        writer.writerow(row)


查看完整回答
反對 回復 2022-12-06
  • 4 回答
  • 0 關注
  • 176 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號