【问题标题】:Creating columns that extract features from the value of another column in the same dataframe and calculate the mean of the extracted 'value' column [duplicate]创建从同一数据框中另一列的值中提取特征并计算提取的“值”列的平均值的列[重复]
【发布时间】: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 部分

标签: python pandas numpy


【解决方案1】:
pd.pivot_table(df,index=['category','default'],values='value',aggfunc='mean')

pivot 表可能会有所帮助。

【讨论】:

    猜你喜欢
    • 2020-08-02
    • 1970-01-01
    • 2021-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-30
    • 2021-08-19
    • 2020-07-08
    相关资源
    最近更新 更多