【问题标题】:Issue with 'float' object, unsliceable?'浮动'对象的问题,不可切片?
【发布时间】:2020-01-09 23:55:06
【问题描述】:

我正在尝试将包含最初显示为“20140701165829”类型的日期值的列转换为日期时间格式(在这种情况下为年=2014,月=07,日=01。但是我是即使在执行整数除法之后也会出现“'float' object is unsliceable”错误。

我尝试过引用'float' object is unsliceable、四舍五入、使用除法类型,并只运行这段代码(有效): (df.timestamp_first_active // 1000000)

为了完全和最低限度地可测试,我的数据源来自以下: https://github.com/FraPochetti/Airbnb/blob/master/data/train_users_2.csv https://github.com/FraPochetti/Airbnb/blob/master/data/test_users.csv

import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
train_users = pd.read_csv("C:/Users/mmcgown/Downloads/train_users_2.csv")
test_users = pd.read_csv("C:/Users/mmcgown/Downloads/test_users.csv")
df = pd.concat((train_users, test_users), axis=0, ignore_index=True)
df['timestamp_first_active'] = pd.to_datetime((df.timestamp_first_active 
// 1000000), format='%Y%m%d')

---> 11 df['timestamp_first_active'] = 
pd.to_datetime((df.timestamp_first_active // 1000000), format='%Y%m%d')


--> 451             values = _convert_listlike(arg._values, True, format)

pandas\_libs\tslibs\strptime.pyx in 
pandas._libs.tslibs.strptime.array_strptime()

TypeError: 'float' object is unsliceable

【问题讨论】:

  • 我已经使用了您的文件和您的 sn-p 代码,但我无法重现您的错误。我收到关于排序的警告,但没有关于浮动的错误。
  • 也许我的错误在于我如何复制和保存 csv?你能提供直接从网站读取 csv 的方法吗?我已经导入了 url reader,但是等待主机回复总是超时。如果在那之后它不起作用,它可能是我的库。
  • 我有 linux,我从命令行使用 wget urlofthefile。 wget see here 有一个窗口版本,但也可以使用其他工具。试一试。
  • 在最不有趣的结果中,结果是我在将 test_users.csv 复制到它之后保存我的 excel 的方式离开了 2.01E13 列。在将 excel 保存为 csv 之前,没有将此列的格式转换为数字,它将其余部分截断为具有年/月/00 或没有日期的某些日期。在 train_users_2 中,我转换为 Number 只是为了查看最初的值,但这阻碍了我在连接时看到它,因为我正在查看前几行(并且错误消息对于这种情况的描述性不是很好)。

标签: python pandas datetime


【解决方案1】:

我遇到了同样的问题,我改用astype(),它对我有用。我会尝试:

(df.timestamp_first_active // 1000000).astype('datetime64[ns]')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-19
    • 1970-01-01
    • 2023-03-09
    • 2014-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多