如何从 value_counts() 的输出创建新的数据框
how to create new data frame from the output of value_counts()
我有一个数据框名称 'df' 并且我 运行 下面的代码...
df['Station'].value_counts()
我的输出将是:
Station 308A - 3955
Station 329 - 3905
Station 313 - 2963
.....................
Station 381 - 2383
名称:站,数据类型:int64
现在我想在计数图中绘制它:
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)
传递
您可以按参数 order
和 value_counts
和 index
:
过滤最高值
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])
您也可以使用 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")
我有一个数据框名称 'df' 并且我 运行 下面的代码...
df['Station'].value_counts()
我的输出将是:
Station 308A - 3955
Station 329 - 3905
Station 313 - 2963
.....................
Station 381 - 2383
名称:站,数据类型:int64
现在我想在计数图中绘制它:
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)
您可以按参数 order
和 value_counts
和 index
:
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])
您也可以使用 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")