Python 如何基于csv文件中的另一列向现有csv文件添加新列

Python 如何基于csv文件中的另一列向现有csv文件添加新列,python,pandas,csv,Python,Pandas,Csv,这是我现在的代码,我的csv看起来像这样 我想添加两个新列,一个名为2016,一个名为2017。然后,它应该显示yrs下的相应位置。我尝试过几种方法,如赋值、插入和使用类似于top2016['2016']=top2016['NAME']的方法,但都不起作用。最好的方法是什么?这就是我希望我的文件的外观 请帮忙 编辑: 这是我2016年平均数据的一部分这可能有效: top2016 = mean2016.sort_values('Snow Mean', ascending=False).drop_

这是我现在的代码,我的csv看起来像这样

我想添加两个新列,一个名为2016,一个名为2017。然后,它应该显示yrs下的相应位置。我尝试过几种方法,如赋值、插入和使用类似于
top2016['2016']=top2016['NAME']
的方法,但都不起作用。最好的方法是什么?这就是我希望我的文件的外观

请帮忙

编辑:

这是我2016年平均数据的一部分

这可能有效:

top2016 = mean2016.sort_values('Snow Mean', ascending=False).drop_duplicates(subset='NAME', keep='first').head(3)
top2016.to_csv('top3.csv')

top2017 = mean2017.sort_values('Snow Mean', ascending=False).drop_duplicates(subset='NAME', keep='first').head(3)
top2017.to_csv('top3.csv', mode='a', header=False)

我尝试了这个,但它给了我ValueError:当使用iterabletop2016['2016']=top2016['NAME']设置时,必须有相等的len键和值给了我错误我编辑了代码,但不应该给你错误。如果您再次给出错误,您能发布您的打印件吗?2016数据帧?我得到了关键错误:“2016”。我上传了2016年的一部分内容,这毫无意义。问题一定在代码的其他地方
top2016 = mean2016.sort_values('Snow Mean', ascending=False).drop_duplicates(subset='NAME', keep='first').head(3)
top2016.loc[:, '2016'] = top2016['NAME']

top2017 = mean2017.sort_values('Snow Mean', ascending=False).drop_duplicates(subset='NAME', keep='first').head(3)
top2017.loc[:, '2017'] = top2017['NAME']

top3 = pd.concat([top2016, top2017]).reset_index(drop=True)
top3.to_csv('top3.csv')