首页 > 解决方案 > 我有一个关于更改数据框类型的问题

问题描述

df = pd.DataFrame({'num':['9','','3','7','11']})
col_nm = 'num'
print(df)

  num
0   9
1    
2   3
3   7
4  11

我在这里的帮助下成功了。

string = "np.where(num >= 5 , 5,num) "
df[col_nm] = pd.to_numeric(df[col_nm],errors='coerce')
string= string.replace(col_nm,"df['"+col_nm+"']")
df[col_nm] = eval(string)
print(df)

   num
0  5.0
1  NaN
2  3.0
3  5.0
4  5.0

但是, pd.to_numeric(downcast = 'integer') 不起作用...我想将其更改回原始状态。

   num                num
0  5.0             0    5
1  NaN             1    
2  3.0        =>   2    3   
3  5.0             3    5
4  5.0             4    5

标签: pythonpandasnumpydataframeeval

解决方案


推荐阅读