将列表作为列添加到现有数据框

时间:2020-10-26 16:28:13

标签: python list function dataframe

我使用一个数据框(NewList)计算一个变量(NPQ),然后将这个变量(一个列表)保存到原始数据框的一列中。我收到错误消息。

def NPQ_calculation(NewList):      #this is the dataframe      
   Fm_prime = NewList.iloc[0:7, 1] #2nd column in dataframe
   NPQ = []
   NPQ.append(Fm/Fm_prime - 1)     #Fm is the 4th column in dataframe
   return NPQ                      # this is the variable I want to add

# call function for NPQ calculation
NPQ = NPQ_calculation(NewList)
###PROBLEM 
NewList['NPQ']= NPQ

这是我收到的错误消息:

ValueError: Length of values does not match length of index

这是我要向其添加新列(NPQ)的原始数据帧[![我使用第二和第四列进行NPQ的计算,并希望将结果添加到最后一列中] [2]] [2])

非常感谢您 enter image description here

1 个答案:

答案 0 :(得分:0)

NPQ设为DataFrame,然后将其附加到原始框架中,例如:

NPQ_data = NPQ_calculation(NewList)

NPQ_df = pd.DataFrame({'NPQ': NPQ_DATA})

NewList = pd.concat([NewList, NPQ_df], axis=1)

注意:从评论中发布答案,以便可以将问题标记为已解决。仍可能是this post的副本。