我正在尝试编写一个函数,该函数接受毫秒数据的熊猫数据帧,并将其转换为日期时间。但是我得到一个错误的名字:AttributeError:“ numpy.int64”对象没有属性“ iat”
现在,我搜索了.iat调用用于访问pandas数据框内的元素。
数据帧包含以下内容:
Time
1561912331018.00
1561912721486.00
1561977388732.00
1561899755951.00
1561897193639.00
1561982246953.00
1561977096883.00
1561919518921.00
1561942255704.00
1561939827253.00
1561965861054.00
1561960122342.00
1561949100949.00
1561962949812.00
def epoch_converter(data):
for number , row_value in data.iteritems():
number = data.loc[number].iat[0]
import datetime
number = number / 1000.0
val = datetime.datetime.fromtimestamp(number).strftime('%Y-%m-%d %H:%M:%S.%f')
print(val)
epoch_converter(time_val.Time)
这里是一种方法。
import datetime as dt
import pandas as pd
data = {
"Time": [1561912331018.00, 1561912721486.00, 1561977388732.00, 1561899755951.00],
"A": ["a", "b", "c", "d"],
}
df = pd.DataFrame(data)
def parse_millisecond_timestamp(ts: int) -> str:
"""Convert ms since Unix epoch to UTC datetime instance."""
return dt.datetime.fromtimestamp(ts / 1000, tz=dt.timezone.utc).strftime(
"%Y-%m-%d %H:%M:%S.%f"
)
print(df)
Time A
0 1.561912e+12 a
1 1.561913e+12 b
2 1.561977e+12 c
3 1.561900e+12 d
# apply conversion to the 'Time' column
df["Time"] = df["Time"].apply(parse_millisecond_timestamp)
print(df)
Time A
0 2019-06-30 16:32:11.018000 a
1 2019-06-30 16:38:41.486000 b
2 2019-07-01 10:36:28.732000 c
3 2019-06-30 13:02:35.951000 d