我正在使用一个 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/