【问题标题】:Seaborn Pairplot with Dataframe vs CSVSeaborn Pairplot with Dataframe vs CSV
【发布时间】:2021-02-04 11:53:51
【问题描述】:

我在 Jupyter 笔记本中有一个数据框,并在其上做一个配对图,以获得一堆相互对比的图。

import seaborn as sns
sns.pairplot(df_merge)

这是配对图的结果。

但是,它以不美观的方式错误地绘制数据。但是,当我将此数据帧导出到 csv 然后将其作为数据帧读回程序时:

import seaborn as sns
df_merge.to_csv('dataframe.csv')
x = pd.read_csv('dataframe.csv')
sns.pairplot(x)

Sns 可以很好地绘制它,并且可以看到变量之间的相关性,但是我有一个不必要的名为 Unnamed 的列,我不需要它。

有谁知道可能导致此问题的原因以及如何在无需将数据框导出为 csv 的情况下进行纠正?

【问题讨论】:

    标签: python pandas csv plot


    【解决方案1】:

    发现我遇到的问题是,当我将数据帧更改为 CSV,然后将其更改回数据帧时,数据帧中的值具有 float64 类型,而在我的数据帧中,它们都是对象。在绘制图表之前将所有数值列转换为浮点数解决了我的问题。

    【讨论】:

      【解决方案2】:

      当你这样做时:

      df_merge.to_csv('dataframe.csv')
      

      你还写了df_merge 的索引,没有名字。那么

      x = pd.read_csv('dataframe.csv')
      

      将索引读取为Unnamed 0 列。要解决此问题,请保存不带索引的数据框:

      df_merge.to_csv('dataframe.csv', index=False)
      x = pd.read_csv('dataframe.csv')
      

      或读取带有索引的csv:

      df_merge.to_csv('dataframe.csv')
      x = pd.read_csv('dataframe.csv', index_col=[0])
      

      【讨论】:

      • 这很有意义。我不知道为什么直接将数据框放入配对绘图中会给我带来混乱的情节,因为这两个情节也应该输出相同的东西和图表。你知道为什么会这样吗?
      • 检查df_merge是否有字符串或分类变量?
      • 我不相信它。它会改变它吗?我将整个 DF 写入 CSV,然后将其重新读入程序?这两个框架应该是一样的吧?将其写入 csv 之前的一个和将其写入 csv 之后的一个?
      猜你喜欢
      • 2018-09-15
      • 2019-06-05
      • 2019-07-13
      • 2016-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多