如何在不命名 DataFrame 列的情况下使用 Seaborn.lmplot 函数?
Posted
技术标签:
【中文标题】如何在不命名 DataFrame 列的情况下使用 Seaborn.lmplot 函数?【英文标题】:How can i use Seaborn.lmplot function without naming DataFrame columns? 【发布时间】:2018-02-09 02:16:14 【问题描述】:我想使用 Seaborn.lmplot 散布 Dataframe 的 "column 1" 与 "column 2" ,但根据 Seaborn 文档:
Seaborn.lmplot(x, y, data, hue=None, ...)
我们应该提供使用这个函数的列名,换句话说,Dataframes 列应该是字符串而不是整数。
我尝试了以下方法,但都不起作用!
import seaborn as sns
import pandas as pd
df = pd.read_csv('someData.csv',sep=',', header=None)
sns.lmplot(0,1, data= df)
sns.lmplot(df[0], df[1])
sns.lmplot("0","1",data= df)
我的数据框是这样的:
有什么方法可以使用 Seaborn.lmplot 而不用命名列!
【问题讨论】:
【参考方案1】:Seaborn 不允许使用未命名的列。
但是,一个简单的解决方案是重命名列仅出于绘图的目的。将整数映射到字符串 (lambda x: str(x)
) 将允许使用字符串作为 seaborn 图的列名。
sns.lmplot(x="0", y="1", data=df.rename(columns=lambda x: str(x)))
原始数据框将保持不变。
【讨论】:
以上是关于如何在不命名 DataFrame 列的情况下使用 Seaborn.lmplot 函数?的主要内容,如果未能解决你的问题,请参考以下文章
Altair - 如何在不操作 DataFrame 的情况下创建分组条形图
如何在不从 DataFrame 转换并访问它的情况下将列添加到 Dataset?
在不使用索引的情况下替换 pandas DataFrame 中选定单元格的值