1

我有一个包含以下内容的简单 csv:

Pattern, Mode, Bandwidth
Random, Read, 23.988
Random, Write, 30.628
Seq, Read, 38.000
Seq, Write, 33.785

我想制作一个与此类似的分组条形图:

import altair as alt
import pandas as pd
df = pd.read_csv("simple.csv")
alt.Chart(df).mark_bar().encode(
    x='Bandwidth:Q',
    y='Mode:N',
    row='Pattern:N'
)

只是挂起 altair(我必须终止 jupyter notebook 的会话才能摆脱它)。也就是说,如果我手动输入数据:pd.DataFrame([ ], [], columns = []. 相同的绘图命令似乎部分有效。

4

2 回答 2

1

看起来您的 CSV 文件中有空格,因此列名不是'Mode'and 'Bandwidth',而是' Mode'and ' Bandwidth'(带有前导空格)。

最好的解决方法是从 CSV 文件中删除空格。如果这是不可能的,那么在 pandas 中,您可以将skipinitialspace=True参数传递pd.read_csv给以在将数据读入数据帧时去除这些空格。

于 2019-02-06T21:57:08.537 回答
0

没关系,当我阅读 CSV 文件时,我似乎没有通过skipinitialspace=True,而且它弄乱了列名。

于 2019-02-06T21:37:31.713 回答