【问题标题】:Invoking parse_date on an empty dataframe在空数据帧上调用 parse_date
【发布时间】:2018-06-05 16:55:57
【问题描述】:

我正在使用以下内容来读取 csv 文件:-

seller_in = pd.read_csv(seller_file, names=["MID", "START_DAY"], sep='\t', parse_dates=[1])

如果seller_file包含一些数据,那么seller_in['START_DAY']返回Name: START_DAY, Length: 326, dtype: datetime64[ns]

但是,如果seller_file 是一个空文件,那么seller_in['START_DAY'] 返回Series([], Name: START_DAY, dtype: object)

为什么会这样? parse_date 是否不对空 csv 读取强制执行 datetype dtypes。如果不是,有没有办法强制 START_DAY 列是 datetime dtype。

【问题讨论】:

    标签: python python-3.x pandas csv datetime


    【解决方案1】:

    相信你需要to_datetime:

    seller_in = pd.read_csv(seller_file, names=["MID", "START_DAY"], sep='\t')
    seller_in['START_DAY'] = pd.to_datetime(seller_in['START_DAY'])
    

    示例:

    seller_in = pd.DataFrame({'START_DAY':[]})
    seller_in['START_DAY'] = pd.to_datetime(seller_in['START_DAY'])
    print (seller_in.dtypes)
    START_DAY    datetime64[ns]
    dtype: object
    

    【讨论】:

    • 有没有办法通过 dtypes 实现这一点?
    • 我认为不,df.dtypes 仅用于检查 dtypes
    猜你喜欢
    • 1970-01-01
    • 2021-02-16
    • 1970-01-01
    • 2018-12-26
    • 2019-06-02
    • 1970-01-01
    • 1970-01-01
    • 2022-01-15
    • 2018-10-05
    相关资源
    最近更新 更多