首页 文章

从多级Pandas Dataframe中遇到Seaborn Plot的问题

提问于
浏览
1

我正在使用以下命令读入pandas的csv文件:

RawData = pd.read_csv(rawData_file_path, engine='python', header=[0,1])

这将创建一个DataFrame对象,其中第1行和第2行是每列中的 Headers 行 . 像这样的东西:

-------------------------------
|    Group 1   |    Group 2   |
-------------------------------
|   A   |   B  |   A   |  B   |
-------------------------------
|  data | data |  data | data |
-------------------------------
|  data | data |  data | data |
-------------------------------

我正在尝试使用seaborn(sns.countplot)运行计数图但遇到问题因为第2行 Headers 未被视为 Headers . 我试图分析的专栏是一个简单的性别栏(男/女) . 但是,根据结果的布局方式,列 Headers 如下所示:

row 1: What is your gender? 
row 2: Response 
row n: Male or Female etc.

我尝试使用countplot绘制这个:

sns.countplot(x=['What is your gender?'], data=RawData)

但是,我收到此错误:ValueError:DataFrame的真值是不明确的 .

Use a.empty, a.bool(), a.item(), a.any() or a.all().

当我弄平数据框时,seaborn图有效,但不是映射男性和女性计数,而是映射男性,女性和“反应”计数 . 这让我相信 Headers 的第二行是导致unflattend DataFrame中的Value Error的原因 .

这是我必须做的许多第一个图,后面的一些列更复杂,并且需要第二行作为 Headers 中的引用 . 因此,我不能简单地展平DataFrame .

有人可以建议在这附近工作吗?在我必须启动更复杂的可视化对象(如热图等)之前,我现在想用一个简单的计数图来扼杀这个 .

1 回答

  • 1

    countplot 这样的Seaborn函数假设你有tidy data . 简而言之:每个变量应该是一列,每个观察应该是一行 . 您将希望找到一种格式化数据框的方法,使其处于此基本结构中,然后您就可以使用seaborn来绘制它 .

相关问题