[英]How to convert leading zeros to decimal using pandas?
我有一個 excel 文件,其中列顯示如下:
|Calibre|Item|Aditivo|
|:----|:----|:----|
|015|4120|NO|
|018|4123|SI|
|2|4212|NO|
|075|4141|SI|
|500|4143|NO|
所以我需要制作一個 dataframe 向我顯示以十進制表示的前導零的數字,就像這樣:
|Calibre|Item|Aditivo|
|:----|:----|:----|
|0.15|4120|NO|
|0.18|4123|SI|
|2|4212|NO|
|0.75|4141|SI|
|500|4143|NO|
我只需要轉換一些特定的列。 目前我找到的解決方案是這樣的:
df=pd.read_excel('/content/file.xlsx',converters={'Calibre':str})
cal=[]
for i in df['Calibre']:
if i[0]=='0':
cal.append(float(i.replace('0','0.')))
else:
cal.append(int(i))
df['Calibre']=cal
但我真的認為有更好的方法來做到這一點(我也無法編輯 excel 文件)
使用Series.str.replace
和^
作為字符串的開頭,然后將值轉換為浮點數,因為如果浮點數帶有整數,則整數默認轉換為帶有.0
后綴的平面:
df=pd.read_excel('/content/file.xlsx',converters={'Calibre':str})
df['Calibre'] = df['Calibre'].str.replace('^0','0.').astype(float)
您可以將代碼轉換為 function 並使用.apply()
。 如果沒有好的樣本數據集,我無法對其進行測試,但這可能比遍歷每個單元格/行更有效。
df=pd.read_excel('/content/file.xlsx',converters={'Calibre':str})
cal=[]
def convert_to_float(cell):
if cell[0]=='0':
return(float(i.replace('0','0.')))
else:
return(int(i))
df['Calibre'] = df['Calibre'].apply(convert_to_float, axis=1)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.