TypeError:无法连接非NDFrame对象 [英] TypeError: cannot concatenate a non-NDFrame object

查看:911
本文介绍了TypeError:无法连接非NDFrame对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有这个DatetimeIndex:

I have this 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:

I want to take dates and append them to my 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

推荐答案

如果df的长度与DatetimeIndex相同,并且需要创建index:

If length of df is same as DatetimeIndex and need create index:

df.index = dates 

如果不尝试按index的长度进行过滤,则与df的长度相同:

If not try filter by length of index what is same as length of df:

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

如果需要新列:

df['a'] = dates 

如果不是:

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

如果只需要使用前5个值:

If need use only first 5 values:

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

我认为您需要 union 将索引连接到dates,然后 reindex :

I think you need union for concatenate index to dates and then 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

这篇关于TypeError:无法连接非NDFrame对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆