[英]How to pipe pandas groupby parts to seaborn distplot?
我正在学习在 pandas 中使用 pipe 方法,并想知道我们是否可以将它用于 plot 每组 groupby 的分布图。
import numpy as np
import pandas as pd
import seaborn as sns
# data
np.random.seed(100)
data = {'year': np.random.choice([2016, 2018, 2020], size=400),
'item': np.random.choice(['Apple', 'Banana', 'Carrot'], size=400),
'price': np.random.random(size=400)}
df = pd.DataFrame(data)
# distplots
for year in df['year'].unique():
x = df['price'][df['year'] == year]
sns.distplot(x, hist=False, rug=True)
我们可以使用 pandas groupby 而不使用 for 循环来获得相同的 plot 吗?
我的尝试:
df.groupby('year').pipe(lambda dfx: sns.distplot(dfx['price']))
# TypeError: cannot convert the series to <class 'float'>
# df[['year','price']].groupby('year').pipe(sns.distplot)
# TypeError: float() argument must be a string or a number, not 'DataFrame'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.