我有一系列的年,por。年份目前是浮點數,包括像 1942.0.0 這樣的小數。我想洗掉小數位并添加“-12-31”,以便我有一個陣列,其中的條目看起來像“1942-12-31”。我寫了下面的回圈,但是當我運行它時,小數點仍然存在,陣列的前幾個實體保持不變。我哪里錯了?
por=CMStations.por
for i in por:
int(i)
por.loc[i]=str(i) "-12-31"
uj5u.com熱心網友回復:
小數點仍然存在,因為您沒有分配int(i)給任何東西。嘗試
por=CMStations.por
for i in por:
por.loc[i]=str(int(i)) "-12-31"
uj5u.com熱心網友回復:
假設 por 是 Python 中的串列(我不認為陣列在 Python 中更常見,但它們很相似),以下代碼有效。您需要將 int(i) 分配給一個新值,例如 i 本身以將其替換為 int。否則,沒有對 i 進行有效的更改。此外,您不能直接更改串列,因此我創建了一個新串列并將其分配回舊串列。
new_por = list()
for i in por:
i = int(i)
i = str(i) "-12-31"
new_por.append(i)
por = new_por
uj5u.com熱心網友回復:
這取決于變數的型別por。如果它是一個浮點數陣列,那么您只能將其更改為另一個float而不是 a string。為此,為新值(字串)創建一個串列,如下所示:
import numpy as np
por = np.array([1942.0,1943.1,1944.2])
por_string = []
for i in por:
por_string.append(str(int(i)) "-12-31")
輸出是:
['1942-12-31', '1943-12-31', '1944-12-31']
uj5u.com熱心網友回復:
你可以繼續這個:
por=[2021.0,2022.0,2023.0,2024.0,2025.0]
por_new=[]
for item in por:
if item!=int:
por_new.append(str(int(item)) "-12-31")
print(por_new)
輸出
['2021-12-31', '2022-12-31', '2023-12-31', '2024-12-31', '2025-12-31']
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/370005.html
上一篇:按當前日期對陣列進行排序
