加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – Pandas Dataframe对象在不同的??数据类型上输入fillna

发布时间:2020-12-20 11:27:54 所属栏目:Python 来源:网络整理
导读:我有一个Pandas Dataframe,不同的列有不同的dtypes.例如. df.dtypes返回以下内容. Date datetime64[ns]FundID int64FundName objectCumPos int64MTMPrice float64PricingMechanism object 各种奶酪列都缺少价值.使用NaN值对其执行组操作会导致问题.用.fillna
我有一个Pandas Dataframe,不同的列有不同的dtypes.例如. df.dtypes返回以下内容.

Date                    datetime64[ns]
FundID                           int64
FundName                        object
CumPos                           int64
MTMPrice                       float64
PricingMechanism                object

各种奶酪列都缺少价值.使用NaN值对其执行组操作会导致问题.用.fillna()方法摆脱它们是显而易见的选择.问题是字符串的明显clouse是.fillna(“”),而.fillna(0)是整数和浮点数的正确选择.在DataFrame上使用任一方法都会引发异常.任何优雅的解决方案,除了单独做它们(有大约30列)?我有很多代码,具体取决于DataFrame,并且不希望重新键入列,因为它可能会破坏其他逻辑.
可以做:

df.FundID.fillna(0)
df.FundName.fillna("")
etc

解决方法

您可以遍历它们并使用if语句!

for col in df:
    #get dtype for column
    dt = df[col].dtype 
    #check if it is a number
    if dt == int or dt == float:
        df[col].fillna(0)
    else:
        df[col].fillna("")

当您遍历pandas DataFrame时,您将获得每个列的名称,因此要访问这些列,请使用df [col].这样你就不需要手动完成了,脚本可以遍历每一列并检查它的dtype!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读