Python:散点图列名称

Python: Scatterplot column names

我正在尝试操作我的数据框,以便可以在 seaborn 散点图(如下所示)的 x 轴中使用列名称(例如星期一、星期二)。现在我有这个:

          week  Sun  Mon  Tues  Wed  Thur  Fri  Sat  
0   2016-05-08    0    0     0    3     1    5    1    
1   2016-05-15    0    0     0    1     0    0    1     
2   2016-05-22    0    0     1    2     3    0    0      
3   2016-05-29    0    0     1    0     0    0    0     
4   2016-06-05    0    0     3   19    19   14    1     
5   2016-06-12    0   40    30   14     0    0    0     
6   2016-06-19    3   16    10   26    38   17   17    
7   2016-06-26    0    4     3    1     1    4    0

我唯一能想到的就是改变我的数据格式,让它变成这样:

 week             day      amount
 2016-05-08       Sun           1
 2016-05-15       Sun          30
 2016-05-22       Sun           0
 2016-05-29       Mon           6
 2016-06-19       Mon          40

我对如何拆开它有点困惑。

我将不胜感激任何关于如何实现的方向。

Scatterplot

要将数据从宽格式重新排列为长格式:

df.set_index('week').stack().rename_axis(('week','day')).reset_index().rename(columns={0:'amount'})

你附上的图片是Seaborn生成的stripplot。

Seaborn 不需要数据操作。

import seaborn as sns  
print(df)
             week     day  amount
0  2016-05-08  Sunday       1
1  2016-05-15  Sunday      30
2  2016-05-22  Sunday       0
3  2016-05-29  Monday       6
4  2016-06-19  Monday      40

_ = sns.stripplot('day', 'amount', data=df)

但是,如果您仍然想操作数据,可以使用以下命令:

df_out = df.set_index(['week','day']).unstack()
df_out.columns = df_out.columns.droplevel()
print(df_out)

输出:

day        Monday Sunday
week                    
2016-05-08    NaN    1.0
2016-05-15    NaN   30.0
2016-05-22    NaN    0.0
2016-05-29    6.0    NaN
2016-06-19   40.0    NaN