小编pst*_*mps的帖子

Python:在单行的两个不同列中绘制逗号分隔值(Pandas)

假设我有一个结构如下的数据框:

Name        x        y
Joe       0,1,5    0,3,8
Sue       0,2,8    1,9,5
...
Harold    0,5,6    0,7,2
Run Code Online (Sandbox Code Playgroud)

我想将 x 轴和 y 轴中的值绘制在基于行的折线图上。实际上,有许多 x 和 y 值,但这些列中的每个 y 值始终对应一个 x 值。绘图的名称将是“名称”中的值。

我尝试通过首先将 x 和 y 转换为各自单独列中的列表来实现此目的,如下所示:

df['xval'] = df.['x'].str.split(',')
df['yval'] = df.['y'].str.split(',')
Run Code Online (Sandbox Code Playgroud)

然后将它们传递给seaborn:

ax = sns.lineplot(x=df['xval'], y=df['yval'], data=df)
Run Code Online (Sandbox Code Playgroud)

但是,这不起作用,因为 1)我收到一个错误,我认为这是由于尝试从数据帧传递列表所致,声称:

TypeError: unhashable type: 'list'
Run Code Online (Sandbox Code Playgroud)

2)我无法为特定线图指定 df['name'] 的值。解决这个问题的最佳方法是什么?

python list matplotlib pandas seaborn

1
推荐指数
1
解决办法
875
查看次数

标签 统计

list ×1

matplotlib ×1

pandas ×1

python ×1

seaborn ×1