country 2013 2014 2015 2016 2017 2018
Germany 65.5 66.5 67 67.5 67.7 68
France 65.5 65.5 66 67 67 68
india 64 67 68 68 67 67.5
japan 70 71 71.5 72 73 72.5
Australia 34 34 81 82 84 84在2018年,低于哪个国家的预期寿命阈值是第一个十分之一(°)?
谁能告诉我如何找到第一个十进制?或者如何解决上面的问题?
发布于 2020-02-04 03:56:23
它结合使用布尔索引和qcut来查找2018年值落在第一个十进制数中的行(国家)。
bins = 10 # Bin into deciles.
df[pd.qcut(df['2018'], bins, labels=range(bins)).eq(0)]pd.qcut(df['2018'], bins, labels=range(bins))的结果将是一个序列,其中每行都在0-9范围内,表示二进制数(十进制数,其中0是第一个十进制数,9是第十个十进制数)。然后,我们只需要查找第一个deceile中的行(其中bin等于0),我们使用一个布尔掩码(简化为df[decile_series.eq(0)])。
发布于 2020-02-04 04:01:16
如果我理解正确的话,你想找出2018年各国预期寿命中的第一个十位数吗?
十进制意味着将国家划分为10个相等的部分,所以我假设您给出了完整国家列表的一个小样本。
为了回答你的问题,你可以使用pandas qcut函数来得到分位数:这个函数试图将底层数据分成相等大小的存储箱。该函数根据数据的分布使用百分位数定义存储箱(假设这是您需要的)。
假设您的数据帧名为df。
pd.qcut(df['2018'], q=10)这是你需要的吗?
发布于 2020-02-04 16:59:11
我们可以这样做:
df['2018'].quantile(0.1)https://stackoverflow.com/questions/60046131
复制相似问题