您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

python – 迭代数据框中的某些列

5b51 2022/1/14 8:21:46 python 字数 2307 阅读 519 来源 www.jb51.cc/python

嗨,我有这样的数据框: Ticker P/E P/S P/B P/FCF Dividend No. 1 NTCT 457.32 3.03 1.44 26.04 - 2 GWRE 416.06 9.80 5.33 45.62 -

概述

嗨,我有这样的数据框:

    Ticker  P/E     P/S     P/B    P/FCF    Dividend
No.                     
1   NTCT    457.32  3.03    1.44    26.04   -
2   GWRE    416.06  9.80    5.33    45.62   -
3   PEGA    129.02  4.41    9.85    285.10  0.28%
4   BLKB    87.68   4.96    14.36   41.81   0.62%

首先,我想将包含数字(当前是字符串)的列中的值转换为浮点值.所以在这里我将有4个需要转换浮动的中间列.简单的循环是否适合这种情况?

第二,最后一栏’Dividend’存在问题,其中百分比值为字符串.事实上,我可以将其转换为小数,但我想是否有办法仍然保留%,并且值仍然可以计算.

对这两个问题的任何想法?

>取出’Ticker’,因为它不是数字
>使用assign来通过去除%来覆盖Dividend
>使用pd.to_numeric应用转换所有列
>使用eval将Dividend设置为适当的小数空间

df[['Ticker']].join(
    df.assign(
        Dividend=df.Dividend.str.strip('%')
    ).drop('Ticker',1).apply(
        pd.to_numeric,errors='coerce'
    )
).eval('Dividend = Dividend / 100',inplace=False)

    Ticker     P/E   P/S    P/B   P/FCF  Dividend
No.                                              
1     NTCT  457.32  3.03   1.44   26.04       NaN
2     GWRE  416.06  9.80   5.33   45.62       NaN
3     PEGA  129.02  4.41   9.85  285.10    0.0028
4     BLKB   87.68  4.96  14.36   41.81    0.0062

更多行
更具可读性

nums = df.drop('Ticker',1).assign(Dividend=df.Dividend.str.strip('%'))
nums = nums.apply(pd.to_numeric,errors='coerce')
nums = nums.assign(Dividend=nums.Dividend / 100)
df[['Ticker']].join(nums)

    Ticker     P/E   P/S    P/B   P/FCF  Dividend
No.                                              
1     NTCT  457.32  3.03   1.44   26.04       NaN
2     GWRE  416.06  9.80   5.33   45.62       NaN
3     PEGA  129.02  4.41   9.85  285.10    0.0028
4     BLKB   87.68  4.96  14.36   41.81    0.0062

总结

以上是编程之家为你收集整理的python – 迭代数据框中的某些列全部内容,希望文章能够帮你解决python – 迭代数据框中的某些列所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶