簡體   English   中英

Python 元組和 memory

[英]Python tuple and memory

我有一個奇怪的問題。

我得到一些這樣的數據:

save_last_row = exchange.fetch_ohlcv('BTC/USD', timeframe='1m', limit=2)
save_last_row = pd.DataFrame(save_last_row[:-1],columns=['Date Time', 'Open', 'High', 'Low', 'Close', 'Volume'])

數據如下所示:

       Date Time     Open     High      Low    Close       Volume
0  1640190840000  49075.0  49085.0  49044.0  49071.0  147792.0244

這是一個循環,所以我得到每個循環的最后一行。 奇怪的是,當我這樣做之后:

last_row = save_last_row
last_row = function_convert(last_row)

我為last_row獲得:

            Date Time     Open     High      Low    Close       Volume
0 2021-12-22 17:41:00  49041.0  49073.0  49029.0  49033.0  136169.2562

我們可以看到日期時間的格式不同。 如果我 printf save_last_row (我沒有修改),我有:

            Date Time     Open     High      Low    Close       Volume
0 2021-12-22 17:41:00  49041.0  49073.0  49029.0  49033.0  136169.2562

為什么???? Last_row 僅從 save_last_row 中獲取數據。 如何修改變量 save_last_row ???

注意:function_convert 只是修改一些值:

def conversion_date(df):
  df["Date Time"] = df["Date Time"] + 3600000 # add one hour to have local time
  df["Date Time"] = (df["Date Time"].apply(parse_dates)) # convert
  return df

編輯:變量 last_row 被轉換(好的),但 save_last_row 也,?? (這不行,我沒有轉換它)那為什么?

EDIT2:使用 save_last_row.copy() 謝謝 Chris Doyle

如果我理解正確,您希望時間戳為 integer 而不是日期時間 object。

您的parse_date function 將 integer 時間戳解析為日期時間 object,其呈現方式不同。 如果您不想進行這種轉換,只需像這樣從您的conversion_date function 中留下第二行。

def conversion_date(df):
  df["Date Time"] = df["Date Time"] + 3600000 # add one hour to have local time
  return df

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM