【问题标题】:TypeError: float() argument must be a string or a number, not 'NaTType'TypeError:float() 参数必须是字符串或数字,而不是“NaTType”
【发布时间】:2018-09-20 20:56:30
【问题描述】:

我有一个正在运行的函数,可以将 pandas 数据帧上传到我的数据库。

但是,df 中的很多值都是浮点值。

最初数据框具有不兼容的数据类型,但我将它们更改为正确的数据类型,除了我想要浮点数的值。

有些日期没有价值,但 mysql 给了我这个:

1947-01-01 = 1239 -9.22337e18 应该为空

TypeError: float() 参数必须是字符串或数字,而不是 'NaTType'

for lines in countryDict[country_index]:

                      lines.splitlines()
                      fredder = fred.get_series_all_releases(lines)
                      pd.DataFrame(fredder)

                      fredder['date'] = fredder.date.astype('datetime64')
                      fredder['realtime_start'] = fredder.realtime_start.astype('datetime64')
                      fredder['value'] = fredder.value.astype('float64')

                      fredder.to_sql(
                                name = '{}'.format(lines),
                                con = engine,
                                index = False,
                                if_exists = 'append')



connection.close()

【问题讨论】:

    标签: python mysql database pandas for-loop


    【解决方案1】:

    尝试使用 pd.to_datetime(fredder['Date'])

    【讨论】:

    • 我对日期没有问题,因为我的值是浮点数,其中一些也为空
    • 您可以添加一个条件,如果它为空,则将其设为零。这是如果您在输入零时没有问题。
    猜你喜欢
    • 2022-01-09
    • 2021-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-21
    • 2017-08-29
    • 1970-01-01
    • 2019-07-07
    相关资源
    最近更新 更多