向DataFram添加列时忽略列长度

2024-06-26 04:03:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在一个数据帧中添加一组返回值,以便将其输出到CSV文件并进行一些基本的绘图,但是我得到了一个错误消息:ValueError: Length of values does not match length of index。我并不特别关心列的长度,但我想知道是否可以缓和索引,使列表中的第一个元素出现在索引0处,然后其他所有元素都以后续值的形式出现,如有必要,在末尾加上NaN填充。这在熊猫身上可行吗?在

for idx, col in enumerate(df.T.index.values):
    print "On " + str(idx) + " of " + str(len(df.T.index.values))
    startDate = dt.datetime.strptime(col.split()[0], "%m/%d/%y")
    endDate = startDate + dt.timedelta(days=91)

    returns1 = getReturnsForPeriod(df[col][1], startDate, endDate)
    retval[(col.split()[0], df[col][1], df[col][0])] = [ret for ret in returns1]

    returns2 = getReturnsForPeriod(df[col][2], startDate, endDate)
    retval[(col.split()[0], df[col][2], df[col][0])] = [ret for ret in returns2]

    returns3 = getReturnsForPeriod(df[col][3], startDate, endDate)
    retval[(col.split()[0], df[col][3], df[col][0])] = [ret for ret in returns3]

    returns4 = getReturnsForPeriod(df[col][4], startDate, endDate)
    retval[(col.split()[0], df[col][4], df[col][0])] = [ret for ret in returns4]

Tags: ofin元素dfforindexcolsplit
1条回答
网友
1楼 · 发布于 2024-06-26 04:03:37

我认为this和你的问题相似。 先去via dictionary,这样就可以知道数组的最终最大长度。在

这里只是这个想法的基本模型,还没有经过测试:

d = {}
for idx, col in enumerate(df.T.index.values):
  d.update(idx,col)
df = pandas.DataFrame.from_dict({idx,Series(col)) for idx,col in d.iteritems()})

相关问题 更多 >