Python 熊猫:使用透视将行中的一些数据作为列值移动 ->意外结果



我无法找到一种方法来轻松地在数据框架中与某些行相对应的新列。

让我们以下面的pandas数据框架为例:

df = pandas.DataFrame({'date':[13,13,13,13],'city':['NY','NY','SF','SF'],'timeOfTheDay':['day','night','day','night'],'count':[2,3,4,5]})

输出:

<表类>日期城市timeOfTheDay数tbody><<tr>13纽约天213纽约晚上313科幻小说天413科幻小说晚上5

可以使用pivot_table

>> import pandas as pd
>>> df = pandas.DataFrame({'date':[13,13,13,13],'city':['NY','NY','SF','SF'],'timeOfTheDay':['day','night','day','night'],'count':[2,3,4,5]})
>>> pivot_df = pd.pivot_table(df,index=['date','city'],columns=['timeOfTheDay'],values=['count'])
>>> pivot_df.columns = pivot_df.columns.droplevel()
>>> pivot_df.columns.name = None
>>> pivot_df
day  night
date city            
13   NY      2      3
SF      4      5
>>> 
>>> 
>>> pivot_df = pivot_df.rename(columns={'day':'countDay','night': 'countNight'})
>>> pivot_df
date city  countDay  countNight
0    13   NY         2           3
1    13   SF         4           5
>>> 
>>>