Python元组和内存

Posted

技术标签:

【中文标题】Python元组和内存【英文标题】:Python tuple and memory 【发布时间】:2022-01-23 21:04:37 【问题描述】:

我有一个奇怪的问题。

我得到一些这样的数据:

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

我们可以看到日期时间的格式不同。如果我打印 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() 谢谢克里斯·多伊尔

【问题讨论】:

parse_dates 是我们应该知道的吗?某处有内置功能吗?乍一看,您最初拥有的是具有毫秒精度的 Unix 时间。 parse_dates 正在以某种方式转换它。 def parse_dates(ts): return datetime.fromtimestamp(ts/1000.0) 当你有日期授予功能时,为什么日期格式会发生变化...... 我认为你的困惑是last_row = save_last_row 没有复制数据框,它只是说 last_row 和 save_last_row 现在指向同一个数据框。因此,如果您修改 last_row,您修改的是 save_last_row 指向的同一数据框。相反,也许你想要last_row = save_last_row.copy() 可能应该作为以下副本关闭:***.com/questions/2612802/… 【参考方案1】:

如果我理解正确,您希望时间戳是整数而不是日期时间对象。

您的parse_date 函数将整数时间戳解析为日期时间对象,该对象以不同的方式呈现。如果您不想进行这种转换,只需像这样从您的 conversion_date 函数中保留第二行即可。

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

【讨论】:

我编辑我的消息

以上是关于Python元组和内存的主要内容,如果未能解决你的问题,请参考以下文章

Python 学习 第十七篇:元组和集合

2-python元组和列表

元组和列表的区别

元组和列表的区别

元组和列表的区别

python学习:元组和嵌套