gpt4 book ai didi

python - Pandas - map 功能的错误行为

转载 作者:太空宇宙 更新时间:2023-11-04 02:07:06 27 4
gpt4 key购买 nike

我在使用 map 应用函数时遇到了一个非常奇怪的“错误”。

这是您可以用来重现问题的示例 csv:

DATE
2017-03-12 02:59:00
2017-03-12 03:59:00

以下是我使用的代码:

import pandas as pd
import datetime

df = pd.read_csv('example.csv', parse_dates = ['DATE'])

df['TIMESTAMP_C'] = [str(x.timestamp()) for x in df['DATE']]
df['TIMESTAMP_H'] = df['DATE'].map(datetime.datetime.timestamp).map(str)

下面是输出数据框:

                 DATE   TIMESTAMP_C   TIMESTAMP_H
0 2017-03-12 02:59:00 1489287540.0 1489309140.0
1 2017-03-12 03:59:00 1489291140.0 1489309140.0

因此,如您所见,与 map 函数返回的时间戳相同且不正确。我想知道为什么 list comprehension 会返回正确的列表。这可能不是错误,只是我在 map 函数上犯了一些错误,但是,我真的很想使用它,因为它可以大大加快计算速度。

编辑:我不是在问怎么做,我是在问为什么我这样做会返回不同的结果

最佳答案

map 功能工作正常。您正在传递一个属于 datetime.datetime 类的“未绑定(bind)”方法,即 datetime.datetime.timestamp,并且您正在传递一些 pandas._libs.tslibs.timestamps.Timestamp 反对它。你不应该期望它会起作用,我很惊讶它没有抛出错误。

相反,您想使用 pd.TimeStamp 类的 .timestamp 方法,因此:

In [3]: df.DATE.map(pd.Timestamp.timestamp).map(str)
Out[3]:
0 1489287540.0
1 1489291140.0
Name: DATE, dtype: object

关于python - Pandas - map 功能的错误行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54429239/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com