如何在不命名 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 函数?的主要内容,如果未能解决你的问题,请参考以下文章

如何在不重复列的情况下合并 Pandas 数据框

Altair - 如何在不操作 DataFrame 的情况下创建分组条形图

如何在不从 DataFrame 转换并访问它的情况下将列添加到 Dataset?

在不使用索引的情况下替换 pandas DataFrame 中选定单元格的值

如何在不生成 SettingWithCopyWarning 的情况下将列插入 DataFrame

在 DataFrame.groupby 的情况下,如何根据另一列的最大值获取列的值