我正在使用以下命令读入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 回答
像
countplot
这样的Seaborn函数假设你有tidy data . 简而言之:每个变量应该是一列,每个观察应该是一行 . 您将希望找到一种格式化数据框的方法,使其处于此基本结构中,然后您就可以使用seaborn来绘制它 .