加快时间戳操作

2024-09-27 07:30:16 发布

您现在位置:Python中文网/ 问答频道 /正文

以下转换(ms->;datetime->;conver timezone)需要很长时间才能运行(4分钟),可能是因为我正在处理一个大数据帧:

for column in ['A', 'B', 'C', 'D', 'E']:
    # Data comes in unix time (ms) so I need to convert it to datetime
    df[column] = pd.to_datetime(df[column], unit='ms')

    # Get times in EST
    df[column] = df[column].apply(lambda x: x.tz_localize('UTC').tz_convert('US/Eastern'))

有没有办法加快速度?我是否已经在以最有效的方式使用Pandas数据结构和方法?在


Tags: to数据ingtconvertdffordata
2条回答

这些方法可作为DatetimeIndex方法使用,其速度将快得多:

df[column] = pd.DatetimeIndex(df[column]).tz_localize('UTC').tz_convert('US/Eastern')

注意:在0.15.0中,您可以以序列dt accessor的形式访问这些:

^{pr2}$

我将在Bash中尝试使用date命令。事实证明,在日常转换中,日期甚至比呆呆地看还要快。Python可能会为此而挣扎。在

为了更快地将A列导出到一个临时文件中,将B列导出到另一个临时文件中,等等。(甚至可以在python中执行此操作)。然后并行运行5列。在

for column in ['A']:
  print>>thefileA, column
for column in ['B']:
  print>>thefileB, column

然后是bash脚本:

^{pr2}$

您需要一个主bash脚本来运行pythonpython pythonscript.py中的第一部分。然后您需要在后台从主./FILEA.sh &调用每个bash脚本。它将单独运行每个列并自动指定节点。对于readarray之后的bash循环,我并不是百分之百正确的语法。如果您在linux上,请使用date -d @ item。在

相关问题 更多 >

    热门问题