簡體   English   中英

Groupby Object in Pandas to Seaborn Z36BE98B843E778A6E7350354FEZ69

[英]Groupby Object in Pandas to Seaborn Plot: Is there an easy way?

這是我與 Pandas 的斗爭中反復出現的主題,也是我一直不願從 R 切換原因。

拿這個小數據集。

import pandas as pd
import numpy as np
import seaborn as sns
iris_data = sns.load_dataset('iris')
df = iris_data.head(5).copy()
df = pd.concat([df, iris_data.iloc[50:55]])
df = pd.concat([df, iris_data.iloc[100:105]])
df

當我運行以下命令時,我得到了一個不錯的 groupby object,然后是一個錯誤:

x = df.groupby('species')['sepal_length', 'sepal_width'].sum()

分組對象

sns.barplot(x='species', y='sepal_length', data=x)

為什么? 因為 groupby 剝奪了您的列/變量名稱並將所有內容變成不可讀的索引,而 Seaborn 無法讀取它們。 我看到行/列標簽,但沒有。 我嘗試過取消堆疊、reset_index、添加虛擬列(沒有人應該這樣做),但我仍然找不到解決這個問題的簡單方法。 我想要的只是讓我的 groupby object 中的數據可以輕松轉移到 sns 或 plotnine 中的 plot 中。 我在這上面浪費了太多時間。 我會很感激這里的一些見解。

由於您沒有提供樣本來重現 dataframe 我不能確定這是否對您有用,但我確實認為它是您正在尋找的重置 dataframe 索引:

x = df.groupby('species')[['sepal_length', 'sepal_width']].sum().reset_index(level=[0])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM