我使用以下命令使用csv文件读取了大熊猫:
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。
有人可以建议在这附近工作吗?在我必须开始更复杂的可视化(如热图等)之前,我现在想用一个简单的计数图来扼杀这个。
答案 0 :(得分:1)
像countplot
这样的Seaborn函数假设你有tidy data。简而言之:每个变量应该是一列,每个观察应该是一行。您将希望找到一种格式化数据帧的方法,使其处于此基本结构中,然后您就可以使用seaborn来绘制它。