これは愚かな質問かもしれませんが、次のようなシナリオを想像してみてください。リストがいっぱいになるとDataFrame
に変換されます。あなたは事前に最終的なサイズを知らないので、適切なサイズで事前に割り当てることはできません。なぜlist.insert()にギャップが残らないのですか?
あなたはそれの長さを超えてインデックスにリストをしようとした場合、それは不合理ではないIndexError
を与える行(つまり、ネストされたリスト)を投入しながら:
>>> row = list()
>>> row.append('a')
>>> row[3] = 'c'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list assignment index out of range
をただし、あなたがinsert(index, element)
メソッドを使用する場合、私はリストにギャップがあることが予想されていただろう(少なくともギャップがあるという選択肢がある)。結局のところ、私が最後に追加したいのであれば、代わりにappend(element)
を使用したでしょう。
>>> row = list()
>>> row.append('a')
>>> row.insert(3,'c')
>>> row
['a', 'c']
これまで見てきたように、これは当てはまりません。これはなぜですか?
ギャップリストを取得する唯一の可能な方法をリスト上で反復するカスタムラッパー関数を作成しています。 ['a', None, 'c']
(またはその他のデフォルト値)ですか?
'NONE'は単なるオブジェクトではなく、NULLポインタです。期待される出力に「ギャップ」はありません。はい、それを達成するためのカスタム関数を構築する必要があります。 –
'l.insert(index、value)'は 'l [index:index] = [value]'と同じもので、常にスライスが機能します(必要な場合は空のスライスを生成します)。そうでなければインデックスが大きすぎる場合。 –
疎な表現のためにdictsのdictを使って 'DataFrame'を構築しようとするならば、' pdf.DataFrame.from_dict'はデフォルトで '' columns''パラメータをとるtailor-madeコンストラクタを持っています。各サブディッチが行を表す場合は 'index'に設定することができます。これは 'NaN'でギャップを埋めるでしょう。 –