我对如何完成此任务有疑问。我想返回或分组数据框中的一系列数字,这些数字来自“ PD”列,范围为.001到1。我要对.91>“ PD”>进行分组。 .9到.91(或返回值91),将.92>'PD'> =。91到.92,...,1> ='PD'> =。99到1。 “分组”。我一直在做的是手动执行每个if语句,然后将其与基础数据帧合并。任何人都可以通过一种更有效的方式来帮助我吗?仍处于使用python的早期阶段。很抱歉,这个问题似乎很简单。感谢您的答复和您的时间。
答案 0 :(得分:1)
让您的数据看起来像这样
<xsl:variable name="contactType">
<xsl:choose>
<xsl:when test="Private">Private</xsl:when>
<xsl:when test="Business">Business</xsl:when>
</xsl:choose>
<td class="content2" colspan="2"><xsl:value-of select="$contactType"/></td>
</xsl:variable>
然后截取PD列的最后一个小数。这有点棘手,因为在不使用str转换的情况下进行舍入会遇到很多问题。例如
>>> df = pd.DataFrame({'PD': np.arange(0.001, 1, 0.001), 'data': np.random.randint(10, size=999)})
>>> df.head()
PD data
0 0.001 6
1 0.002 3
2 0.003 5
3 0.004 9
4 0.005 7
现在您可以使用pandas-groupby。随心所欲地处理数据,例如
>>> df['PD'] = df['PD'].apply(lambda x: float('{:.3f}'.format(x)[:-1]))
>>> df.tail()
PD data
994 0.99 1
995 0.99 3
996 0.99 2
997 0.99 1
998 0.99 0
请注意,由于我的样本中缺少0.000,因此第一行短了一个项目。