题目
现有一份关于巧克力评价的数据集:
1
2
| df = pd.read_csv('../data/chocolate.csv')
df.head(3)
|
- 把列索引名中的
\n
替换为空格。 - 巧克力
Rating
评分为1至5,每0.25分一档,请选出2.75分及以下且可可含量Cocoa Percent
高于中位数的样本。 - 将
Review Date
和Company Location
设为索引后,选出Review Date
在2012年之后且Company Location
不属于France, Canada, Amsterdam, Belgium
的样本。
第 1 问
1
2
| df.columns = df.columns.map(lambda x: x.replace('\n', ' '))
df.head()
|
第 2 问
1
2
3
| cocoa_percent_median = df["Cocoa Percent"].apply(lambda x: float(x[:-1]) / 100).median()
df[(df.Rating <= 2.75) & (df["Cocoa Percent"].apply(lambda x: float(x[:-1]) / 100) > cocoa_percent_median)]
|
第 3 问
将Review Date
和Company Location
设为索引后,选出Review Date
在2012年之后且Company Location
不属于France, Canada, Amsterdam, Belgium
的样本。
1
2
| df.set_index(["Review Date", "Company Location"], inplace=True)
df.query('(`Review Date` > 2012) & (`Company Location` not in ["France", "Canada", "Amsterdam", "Belgium"])')
|
我尝试用loc
去做这一小题, 但没能做到.