【问题标题】:Python: Invalid Syntax by saving datasetPython:保存数据集时语法无效
【发布时间】:2021-05-11 23:28:23
【问题描述】:

我正在尝试使用名为“orkg”并基于 Python 的库中的名为“save_dataset”的函数将一些数据保存在 csv 文件中。

在数据集中,我必须保存一些 Date 值,python 编译器不接受作为月份和年份之间的 point (.) 的分隔符,并向我显示语法错误: SyntaxError: 无效语法 这是我使用的代码:

datasetID = orkg.resources.save_dataset(file="data.csv", label=["cc_variant", "Date","NEE"], dimensions=[
        (Fallow, 18.10.2016, 5231861), (Fallow, 19.10.2016, 3675274), (Fallow, 24.10.2016, 3459082), (Mix4, 18.10.2016, -51686837), 
        (Mix12, 18.10.2016, -61711000), (Mustard, 18.10.2016, -18224568), (Mix4, 19.10.2016, -10263776), 
        (Mix12, 19.10.2016, -43155887), (Mustard, 19.10.2016, -13904121), (Mustard, 24.10.2016, -11409939),
        (Mix12, 24.10.2016, -40021260), (Mix4, 24.10.2016, -17533208)]
])

我不确定是否需要导入熊猫库或者我应该更改日期格式吗?

【问题讨论】:

  • 您希望18.10.2016 是什么类型?浮标?一个字符串?一个元组? datetime.date 还是 datetime.datetime?
  • @MisterMiyagi 感谢您尝试帮助我。我直接从 csv 文件中复制了数据,18.10.2016 是一个日期,所以我认为这里最好的选择是 datetime.date

标签: python python-3.x dataset


【解决方案1】:

基本上你的输入像19.10.2016不会被python理解。你可以通过打开一个 python 交互式 shell 并简单地输入 19.10.2016 来测试它,你会得到同样的错误。

您可能想要的是将其作为字符串 "19.10.2016" 传递给您的 save_dataset 调用,以便包可以查看该字符串,找出它是一个日期并执行任何适当的操作。

您拥有的另一个选项(并且可以与大多数其他软件包很好地配合使用)是使用 datetime 对象:

>>> from datetime import date
>>> date.fromisoformat('2019-12-04')
datetime.date(2019, 12, 4)

所以 tl;dr:将所有日期用引号括起来或使用 datetime 包;)

【讨论】:

  • 坦克试图帮助我。稍后我将使用数据来显示绘图,所以我认为字符串类型不是一个好的解决方案,最好的选择是日期
  • 嗨,我已经更新了我的答案:在这种情况下,您可以使用 datetime
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-10
  • 2015-01-18
  • 2016-03-12
相关资源
最近更新 更多