def canbe_int(x: float= 0):
try:
int(x)
return True
except ValueError:
return False
except TypeError: # None
return False
知识点还是要成系统化
'''
设计一个函数 满足:
如果对象格式是两位数浮点数 保留浮点数格式
如果对象格式是字符串 保留字符串格式
如果对象格式是整数或一位数浮点数 转化为整数字符串
目的是:
使编码类对象格式化
问题:
同一列内 包含 nan 字符串 none 不能直接转int
解决:
遍历表格的每一列
遍历该列的每一行
判断:如果同一列内元素 是整数或一位数浮点数或nan 则转化为整数字符串
否则:则不处理
'''
def to_int_str(df: pd.core.frame.DataFrame = pd.DataFrame()): # 函数在import pandas as pd之后
for i in df: # 遍历每一列
for j in df.loc[:,i]: # 遍历该列的每一行
if 如果同一列内元素 是整数或一位数浮点数或nan
等待后解决:
import pandas as pd
import numpy as np
def canbe_int(x: float= 0):
try:
int(x)
return True
except ValueError:
return False
except TypeError: # None
return False
def to_int_str(df: pd.core.frame.DataFrame = pd.DataFrame({"c1":[1.1,np.nan],"c2":[3.1,"?"]})): # 函数在import之后
for i in df: # 遍历每一列
seri_bool = df.loc[:,i].apply(canbe_int) # 判断该列内的每个元素
df.loc[seri_bool,i] = df.loc[seri_bool,i].astype("int64").astype(str) # 筛选并转化格式
return df
to_int_str()