1. ホーム
  2. python

[解決済み】TypeError: 非NDFrameオブジェクトを連結することができない

2022-01-22 03:11:51

質問

このDatetimeIndexを持っています。

dates = DatetimeIndex(['2017-06-09', '2017-06-10', '2017-06-11', '2017-06-12',
               '2017-06-13', '2017-06-14'],
              dtype='datetime64[ns]', freq='<DateOffset>')

日付を取得してDataFrameに追記したい df :

for i in xrange(0,5):
    df.append(dates[i],ignore_index=True)

次のようなエラーが発生します。 TypeError: cannot concatenate a non-NDFrame object .

UPDATE

のサンプルデータです。 df :

Out[85]:
2017-06-05   -0.944868
2017-06-06    0.073623
2017-06-07   -0.687232
Freq: <DateOffset>, dtype: float64

解決方法は?

の長さが df と同じです。 DatetimeIndex を作成する必要があります。 index :

df.index = dates 

の長さでフィルタリングしてみてください。 index の長さと同じです。 df :

df.index = dates[:len(df.index)]

新しいカラムが必要な場合。

df['a'] = dates 

そうでない場合は

df['a'] = dates[:len(df.index)]

必要であれば、最初の5つの値だけを使用します。

df['a'] = dates[:5]

EDIT

が必要だと思います。 union にインデックスを連結するため dates で、次に reindex :

df = df.reindex(df.index.union(dates), fill_value=-0.944868)
print (df)
2017-06-05   -0.944868
2017-06-06    0.073623
2017-06-07   -0.687232
2017-06-09   -0.944868
2017-06-10   -0.944868
2017-06-11   -0.944868
2017-06-12   -0.944868
2017-06-13   -0.944868
2017-06-14   -0.944868
Name: <DateOffset>, dtype: float64