web-dev-qa-db-ja.com

TypeError:非NDFrameオブジェクトを連結できません

私はこの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

更新:

dfのサンプルデータ:

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

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]

編集:

インデックスを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
4
jezrael