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