【问题标题】:how to create new data frame from the output of value_counts()如何从 value_counts() 的输出创建新的数据框
【发布时间】:2019-07-10 08:25:59
【问题描述】:

我有一个数据框名称“df”,我在代码下方运行...

df['Station'].value_counts()

我的输出将是:

Station 308A   -   3955

Station 329   -    3905

Station 313   -    2963

.....................

Station 381   -    2383

名称:站,数据类型:int64

现在我想在 countplot 中绘制这个:

sns.countplot(x= "Station", data=df['Station'].value_counts().head(30), palette="bright")

给我错误!!!

因为我只能在 Data ex: data=df 中传递数据帧

所以我的问题是我希望将 df['Station'].value_counts() 这一行的输出作为新数据框

这样我就可以直接将其传递为sns(data=new_df)

【问题讨论】:

    标签: pandas seaborn pandas-groupby pandas-datareader


    【解决方案1】:

    您可以通过参数ordervalue_countsindex 过滤最高值:

    np.random.seed(34345)
    
    df = pd.DataFrame({'Station':np.random.randint(100, size=1000)}).astype(str).radd('station')
    print (df.head())
         Station
    0  station28
    1  station48
    2  station48
    3  station61
    4  station30
    
    N = 5
    sns.countplot(x='Station', 
                  data=df, 
                  palette="bright",
                  order=df['Station'].value_counts().index[:N])
    

    【讨论】:

    • 我得到了数据新的数据框 df1,比我通过了 x= 'Station' 我看到在我的图表中没有绘制任何计数值也尝试使用 'Index' 相同的结果
    • @Shiva_Achari - 所以需要sns.countplot(x="Station", data=df, palette="bright")
    • 在我的计数图中,所有 .head(30) 站的值为 1 ,
    • 有 500 个不同的站点....我只想绘制计数值最高的前 20 或前 30...
    • 是的,它起作用了,通过设置 order=df['Station'].value_counts().iloc[:N].index
    【解决方案2】:

    您也可以使用count_values() 创建新的Dataframe,但应该是sns.countplot(),而不是sns.barplot()

    df = pd.DataFrame({'Station': np.random.randint(10, size=10)})
    df['Station'] = 'station'+df['Station'].astype('str')
    
    value_count = df['Station'].value_counts()
    df1 = pd.DataFrame({'Station': value_count.index, 'Values': value_count.values})
    
    # df1.head(3) will select top 3 rows
    sns.barplot(x= "Station",y='Values', data=df1.head(3), palette="bright")
    

    【讨论】:

      猜你喜欢
      • 2019-05-16
      • 1970-01-01
      • 2013-07-16
      • 1970-01-01
      • 2020-02-29
      • 2018-04-18
      • 2020-12-30
      • 2021-05-15
      • 1970-01-01
      相关资源
      最近更新 更多