python - 使用多级 Pandas Dataframe 的 Seaborn Plot 时遇到问题

标签 python pandas seaborn

我正在使用一个 csv 文件,我已使用以下命令将其读入 pandas:

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

这将创建一个 DataFrame 对象,其中第 1 行和第 2 行是每列中的标题行。像这样的事情:

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

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

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 图起作用了,但它不是映射男性和女性计数,而是映射男性、女性和“响应”计数。这让我相信标题的第二行是导致 unflattend DataFrame 中出现值错误的原因。

这是我必须制作的许多图的第一个,后面的一些列更加复杂,需要第二行作为标题中的引用。因此,我不能简单地展平 DataFrame。

有人可以建议这里的工作吗?在开始更复杂的可视化(例如热图等)之前,我想用一个简单的计数图将其消灭在萌芽状态。

最佳答案

Seaborn 函数(如 countplot)假设您有 tidy data 。简而言之:每个变量应该是一列,每个观察值应该是一行。您将需要找到一种方法来格式化数据帧,使其处于这种基本结构中,然后您将能够使用seaborn来绘制它。

关于python - 使用多级 Pandas Dataframe 的 Seaborn Plot 时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33588670/

相关文章:

python - 如何对预测值进行反向移动平均(在 pandas 中,rolling().mean)操作?

python - 如何从时间戳创建每小时/天的seaborn热图,每小时有多个数据点

python - 在 seaborn 中使用 distplot 进行 FutureWarning

python - 使用循环过滤带有关键字列表的字符串列表

android - Python - stdout 的 Android logcat 输出到 textview 然后保存到 .txt 文件错误

python - Django 和 AppEngine 的多项设置

python - 获取调用方法的对象

python - ivottablejs 在 jupyter 笔记本中不显示任何结果

python - 短信散点图

python - 如何在获取历史汇率的同时加快货币兑换速度