【问题标题】:Pandas dataframe median of a column with condition具有条件的列的 Pandas 数据帧中位数
【发布时间】:2022-01-03 17:38:48
【问题描述】:

所以我有一个包含两列(价格、位置)的数据框。现在我想得到价格的中位数,如果位置是例如。 “巴黎”。我如何做到这一点?

数据框:

location   price    
paris       5    
paris       2    
rome        5    
paris       4

...

期望结果:4(2,5,4 的中位数)

【问题讨论】:

  • 请在问题中添加数据框示例和预期输出

标签: pandas conditional-statements median


【解决方案1】:
import pandas as pd

# Build dataframe
data = [['Paris', 2], ['New York', 3], ['Rome', 4], ['Paris', 5], ['Paris', 4]]
df = pd.DataFrame(data, columns=['location', 'price'])

# Get paris only rows
df_paris = df[df['location'] == 'Paris']

# Print median
print(df_paris['price'].median())

【讨论】:

  • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
【解决方案2】:

我认为你需要df.groupby 进行分组,然后.median()

median = df.groupby('location').median()

获取每个位置的值:

median.loc['paris', 'price']

输出:

4

【讨论】:

  • pd.groupby 不存在
  • @athing 什么意思?
  • 它的 pd.DataFrame.groupby 你使用不是 pd.groupby
  • @athing 已更改。代码还是正确的
  • 太棒了,工作!谢谢 :)
猜你喜欢
  • 1970-01-01
  • 2016-01-16
  • 2020-03-28
  • 2017-11-25
  • 2020-09-13
  • 2022-01-15
  • 2018-12-15
  • 2016-03-21
  • 2021-11-27
相关资源
最近更新 更多