1. ホーム
  2. python

[解決済み] TypeError: 最初の引数はpandasオブジェクトのイテラブルでなければなりません、あなたは "DataFrame" 型のオブジェクトを渡しました。

2022-02-03 17:40:15

質問

大きなデータフレームがあり、それを分割して、その後に concat ということです。 私が使っているのは

df2 = pd.read_csv('et_users.csv', header=None, names=names2, chunksize=100000)
for chunk in df2:
    chunk['ID'] = chunk.ID.map(rep.set_index('member_id')['panel_mm_id'])

df2 = pd.concat(chunk, ignore_index=True)

しかし、それはエラーを返します

TypeError: first argument must be an iterable of pandas objects, you passed an object of type "DataFrame"

どうすれば直るのでしょうか?

どのように解決するのですか?

IIUCでは、次のようなことを望んでいます。

df2 = pd.read_csv('et_users.csv', header=None, names=names2, chunksize=100000)
chunks=[]
for chunk in df2:
    chunk['ID'] = chunk.ID.map(rep.set_index('member_id')['panel_mm_id'])
    chunks.append(chunk)

df2 = pd.concat(chunks, ignore_index=True)

各チャンクをリストに追加して、その後に concat を使用して、それらをすべて連結しています。 ignore_index 必要ないかもしれませんが、間違っているかもしれません。