在Python中使用和绘制交叉表数据帧的结果

时间:2016-12-08 18:52:03

标签: python pandas dataframe crosstab

我正在尝试做一些非常简单的事情 - 从某些数据创建交叉表,然后操纵/绘制结果。

请使用以下代码:

import java.lang.reflect.*;
import java.sql.*;

public class Item extends SimpleSQL {
    protected int id;
    protected String name;
    protected String description;

    public Item(ResultSet result) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException {
        super(result);
    }
}

它为我提供了白天的数据透视表,如下所示:

enter image description here

问题是我需要一个看起来像这样的数据框:

enter image description here

所以我可以与is进行交互并将其绘制成图

例如,我想做

import pandas as pd
import numpy as np
df=pd.read_csv("https://raw.githubusercontent.com/wesm/pydata-   book/master/ch08/tips.csv", sep=',')
df_out=df.pivot_table(index=["day"],values=["tip"], columns=["sex"],aggfunc=[np.sum])

我想用白天绘制男性和女性的seaborn因子图

如何摆脱这里无关的数据?我尝试删除列,重置索引等,但似乎无法弄清楚

感谢您的帮助 - 一整天都在与这场战斗

2 个答案:

答案 0 :(得分:1)

我想我记得在其他聚合函数中遇到这个问题。以下是否有效?

new_df = df['sum']['tip']
new_df['delta'] = new_df['female'] - new_df['male']

答案 1 :(得分:1)

替代方法:

df_out = df_out['sum']['tip']
del df_out.columns.name
del df_out.index.name