2017-03-23 14 views
6

2つのデータフレームを連結しようとしていますが、'TypeError: cannot concatenate a non-NDFrame object'というエラーが発生しています。私は周りを見回していますが、多くの人がこのエラーを受けています。ほとんどの場合、コードが実際に行っていること以外のことをしようとしています。問題は私の特定の問題を解決することではなく、エラーを理解することです... 非NDFrameオブジェクトとは何ですか?なぜ連結できないのですか?それならばパンダ:NDFrameオブジェクトとは何ですか(とNDFrame以外のオブジェクト)

また、なぜこれが(何ものであり、私はそれをどこに使うのですか??すべてのデータフレームのNDFramesですデータフレームではありません任意のNDFramesがある?)NDFramesについてです...

私は理解するであろう(私は彼らがデータフレームをされていない場合は、私のエラーの原因だったことを確認していないが)これは主に私の好奇心は、私は特定のバグを狩りしようとしていない午前、questingです...

+3

おそらく、あなたは一連の 'Series'を連結しようとしていることを意味します。つまり、NDFrameはN次元を意味します。したがって、少なくとも2-Dのシリーズは1次元であり、問​​題は連結してインデックス名とカラム名を整列させます。列にはインデックスがありますが列名はありませんが(名前属性はありますがこれは同じではありません)、動作させることはできますが、実装はこれをサポートしていません – EdChum

+2

または型がNDでないものを渡しています-Frame、例えばnumpyの配列。実際にはパンダのリストを連結してSeriesが動作します。あなたは何をしようとしているのかを実証するために未加工のデータとコードを投稿する必要があります – EdChum

+0

*私は恥ずかしいです*私はコードを修正したので、私のエラーを再現できないようです。私のエラーについてではなく、むしろNDFrameオブジェクトです...それについては疑問があるようですが、stackoverflowで。私は、DataFrameがNDFrame(?)であると私は思っています。「pandas.core.generic.NDFrame は、サイズ可変のラベル付きデータ構造に多次元を格納するDataFrameのN次元アナログですが、それが何であるか、それが何ではないか、そしてそれがDataFrameとの関係についてもっと詳しく説明したいと思います。 – ntg

答えて

9

From the horse's mouth:

'TypeError: cannot concatenate a non-DataFrame object'言いましたDataFrameのN次元アナログサイズ変更可能な、標識されたデータ構造に多次元を格納

Then what's a DataFrame?

クラスデータフレーム(NDFrame):標識された軸を有する 二次元サイズ変更可能な、潜在的に異種表データ 構造(行と列)。算術演算 は、行ラベルと列ラベルの両方に整列します。 Seriesオブジェクト用のdict-like コンテナと考えることができます。

ご覧のとおり、DataFrameはNDFrameのサブクラス(特殊ケース)です。通常、パンダのプログラムでは、DataFrameが多く使用され、NDFrameはほとんど使用されません。実際、Pandasの名前の半分はPanelPandas also hasですが、ほとんどの人は使用していませんが、Pandasは1D、DataFrame for 2D、およびほとんどの人にとって終わりです。

パンダには4Dも​​のもありますが、本当に誰もそれを使用していません(これはインターネットなので、誰かがそうすると思われます)。 2つまたは3つ以上の次元の場合は、xarrayに作業を移した人もいます。それはおそらく、あなたの野望が2Dに含まれていないのならどこにあるのでしょうか。

関連する問題