给出像这样的DataFrame:
>>>df
paper year citation
0 A 2000 1
1 A 2001 2
2 B 2000 3
3 B 2001 4
4 B 2002 5
我想添加三列(即year2000,year2001,year2002),结果将是:
>>>dfnew
paper year2000 year2001 year2002
0 A 1 2 0
1 B 3 4 5
答案 0 :(得分:0)
您可以将pivot_table
与values='citation'
,rows='paper'
,columns='year'
一起使用,并通过NaNs
填充fill_value=0
In [9]: pd.pivot_table(df, values='citation', rows='paper', columns='year', fill_value=0)
Out[9]:
year 2000 2001 2002
paper
A 1 2 0
B 3 4 5
或者,您可以使用pd.crosstab
之类的
In [10]: pd.crosstab(index=df['paper'], columns=df['year'], values=df['citation'],
aggfunc=pd.np.sum)
Out[15]:
year 2000 2001 2002
paper
A 1 2 NaN
B 3 4 5