熊猫整数列删除最后三位数字



以熊猫df为例,列全是整数,但有些带有NAN。

raw capitalSurplus 188883000 totalLiab 2589242000 totalStockholderEquity 6740732000 minorityInterest 27549000 otherCurrentLiab 40412000 totalAssets 9357523000 endDate 1483142400 commonStock 5818867000 retainedEarnings 732982000 otherLiab 746117000 otherAssets 6034000 totalCurrentLiabilities 436539000 propertyPlantEquipment 9135741000 totalCurrentAssets 212758000 longTermInvestments 2990000 netTangibleAssets 6740732000 netReceivables 201288000 longTermDebt 1406586000 accountsPayable 396127000 otherCurrentAssets NAN

附言DF被转置。

预期结果是最后三位数字('000')从所有列中删除,尽管有 NAN 列

并保持结束日期不变:

endDate     1483142400

如果NAN不是np.nan,可以使用df.replace替换它们。

发布其中,我使用 df.columns = ['A','B'] 将列重命名为 A,B

然后你可以使用 floordiv() 做下面的事情,这是一个内置函数:

df.B.update(df[df.A!='endDate']['B'].floordiv(1000))

这将删除除 endDate 行之外的最后 3 个零,并更新相应索引中的列 B。

或者,您也可以使用 // 删除最后 3 个零,如下所示:

df.B.update(df[df.A!='endDate']['B'] // 1000)

最新更新