簡體   English   中英

如何修復 TypeError:無法連接類型為 &#39; 的對象<class 'pandas.io.parsers.TextFileReader'> &#39;; 只有 Series 和 DataFrame 對象有效嗎?

[英]How to fix TypeError: cannot concatenate object of type '<class 'pandas.io.parsers.TextFileReader'>'; only Series and DataFrame objs are valid?

我正在嘗試讀取 csv 文件並將它們連接起來並將它們作為一個 csv 文件輸出。 我不斷收到此錯誤:

類型錯誤:無法連接類型為 '< class 'pandas.io.parsers.TextFileReader'>' 的對象; 只有 Series 和 DataFrame 對象有效;

我不知道如何解決它。 我是初學者,所以我很感激任何幫助! 謝謝! 這是我寫的代碼:

csv.field_size_limit(sys.maxsize)
df1 = pd.read_csv('file1.csv', chunksize=20000)
df2 = pd.read_csv('file2.csv', chunksize=20000)
df3 = pd.read_csv('file3.csv', chunksize=20000)
df4 = pd.read_csv('file4.csv', chunksize=20000)
df5 = pd.read_csv('file5.csv', chunksize=20000)
df6 = pd.read_csv('file6.csv', chunksize=20000)

frames = [df1, df2, df3, df4, df5, df6]
result = pd.concat(frames, ignore_index=True, sort=False)
result.to_csv('new.csv')

如果您調用read_csv傳遞chunksize參數,則:

  • 它返回一個TextFileReader對象,
  • 它可以用於,例如在循環中,讀取和處理連續的塊。

如何使用“分塊”CSV 文件讀取的示例:

reader = pd.read_csv('input.csv', chunksize=20000)
for chunk in reader:
    # Process the chunk (DataFrame)

或者,您可能想要:

  • 從每個源文件中讀取最初的 20000 行
  • 將它們連接成一個新的 DataFrame?

如果是這種情況,請在讀取每個文件時傳遞nrows=20000 (而不是chunksize )。 然后,所有返回的對象將只是DataFrames,你將能夠Concat的他們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM