【发布时间】:2021-10-24 06:11:17
【问题描述】:
df = {'category': ['retail', 'retail', 'airtime', 'electronic', 'retail', 'electronic',
'retail', 'retail','airtime'],
'default': [0, 1, 1, 1,0,1,1,1,0],
'year': [2011, 2013, 2014, 2015,2016,2017,2018,2010,2009],
'value': [6000, 6500, 3000, 1200,3200,4530,2100,1000,3400]}
df = pd.DataFrame(df2)
df
df[['category'=='retail', 'default'==1, 'value']].value.counts()
df[['category'=='retail', 'default'==1, 'value']].mean()
我的预期输出应该类似于下图和提取值列的平均值
【问题讨论】:
-
“提取值列的平均值”是什么意思?输出帧只是被过滤,不采取任何手段。
-
我的意思是,在想要的输出之后,我想知道值列的平均值(平均值)
-
可以通过访问列值来过滤数据框:
new_df = df[df['category'].eq('retail') & df['default'].eq(1)].copy()您的条件必须产生有效的布尔序列,并且需要使用正确的逻辑来组合它们。 -
过滤后,您可以使用
mean->new_df['value'].mean()或使用loc直接从未过滤的数据框中获取平均值:->df.loc[df['category'].eq('retail') & df['default'].eq(1), 'value'].mean() -
在
pandas文档的Indexing and selecting data 部分刷新自己可能是个好主意。特别是Boolean indexing 部分