Pandas 具有条件的列的数据帧中位数

Pandas dataframe median of a column with condition

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

数据框:

location   price    
paris       5    
paris       2    
rome        5    
paris       4

...

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

我想你需要 df.groupby 按地点分组,然后 .median():

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

获取每个位置的值:

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

输出:

4
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())