首页 > 解决方案 > 使用替换方法时列类型更改

问题描述

dataframe 的 replace 方法是将列的类型从 object 更改为 float。有没有办法将对象类型与 np.nan 混合并将列保持为 Dtype“对象”?

df = df.replace("0", np.nan)

前:

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 109 entries, 12 to 120
Data columns (total 5 columns):
 #   Column            Non-Null Count  Dtype 
---  ------            --------------  ----- 
 0   transaction_date  81 non-null     object
 1   remark            81 non-null     object
 2   withdrawal        81 non-null     object
 3   deposit           81 non-null     object
 4   balance           81 non-null     object
dtypes: object(5)
memory usage: 4.4+ KB

后:

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 109 entries, 12 to 120
Data columns (total 5 columns):
 #   Column            Non-Null Count  Dtype  
---  ------            --------------  -----  
 0   transaction_date  81 non-null     object 
 1   remark            81 non-null     object 
 2   withdrawal        52 non-null     float64
 3   deposit           29 non-null     float64
 4   balance           80 non-null     float64
dtypes: float64(3), object(2)
memory usage: 4.4+ KB

标签: pandas

解决方案


您可以替换为None

df = df.replace("0", None) 

推荐阅读