Python 混合数据类型的熊猫将指数或科学数字转换为整数
我一直在寻找解决方案,尝试了一些建议,但没有得到答案。 我有一个列,其中字符串和长数字以指数的形式存在,我需要从指数值中获取完整的数字,以便进一步处理 将科学数字转换为整数 看起来像Python 混合数据类型的熊猫将指数或科学数字转换为整数,python,pandas,dataframe,casting,Python,Pandas,Dataframe,Casting,我一直在寻找解决方案,尝试了一些建议,但没有得到答案。 我有一个列,其中字符串和长数字以指数的形式存在,我需要从指数值中获取完整的数字,以便进一步处理 将科学数字转换为整数 看起来像 您可以定义自定义函数并使用.apply def convert(x): try: return int(float(x)) except Exception: return x df['Ref Number'] = df['Ref Number'].apply(
您可以定义自定义函数并使用
.apply
def convert(x):
try:
return int(float(x))
except Exception:
return x
df['Ref Number'] = df['Ref Number'].apply(convert)
df['Ref Number'].iloc[0], type(df['Ref Number'].iloc[0])
'HSB345678', str
df['Ref Number'].iloc[-1] , type(df['Ref Number'].iloc[-1])
201498000000, int
如果浮动很好,则可以将错误
参数设置为强制
,然后使用.fillna
填充不可转换的字符串
df['Ref Number'] = pd.to_numeric(df['Ref Number'], errors='coerce').fillna(df['Ref Number'])
df['Ref Number'].dtype
dtype('O')
df['Ref Number'].iloc[0], type(df['Ref Number'].iloc[0])
'HSB345678', str
df['Ref Number'].iloc[-1] , type(df['Ref Number'].iloc[-1])
201498000000.0, float
1.0984E+11
转换为int
,但是HSB345678
的结果应该是什么?不需要字符串转换仍然找不到解决方案示例输出与我将df.添加到_csv('output1.csv')时的输入相同
df['Ref Number'] = pd.to_numeric(df['Ref Number'], errors='coerce').fillna(df['Ref Number'])
df['Ref Number'].dtype
dtype('O')
df['Ref Number'].iloc[0], type(df['Ref Number'].iloc[0])
'HSB345678', str
df['Ref Number'].iloc[-1] , type(df['Ref Number'].iloc[-1])
201498000000.0, float