Methoderror:在Julia中对数据帧使用sort()时,没有与isless匹配的方法
我有一个EXCEL文件,我把它读入一个数据帧Methoderror:在Julia中对数据帧使用sort()时,没有与isless匹配的方法,julia,julia-dataframe,Julia,Julia Dataframe,我有一个EXCEL文件,我把它读入一个数据帧 using DataFrames, XLSX df = DataFrame(XLSX.readtable("Stocks/WIHL-Wihlborgs.xlsx", "PriceMonth")...) │ Row │ Date │ Openprice │ Highprice │ Lowprice │ Closeprice │ Volume │ │ │ Any │ Any
using DataFrames, XLSX
df = DataFrame(XLSX.readtable("Stocks/WIHL-Wihlborgs.xlsx", "PriceMonth")...)
│ Row │ Date │ Openprice │ Highprice │ Lowprice │ Closeprice │ Volume │
│ │ Any │ Any │ Any │ Any │ Any │ Any │
├─────┼────────────┼───────────┼───────────┼──────────┼────────────┼──────────┤
│ 1 │ 2020-12-23 │ 189.1 │ 189.7 │ 170.3 │ 181.5 │ 4170122 │
│ 2 │ 2020-11-30 │ 160.0 │ 191.6 │ 158.0 │ 189.1 │ 8006506 │
│ 3 │ 2020-10-30 │ 178.4 │ 184.3 │ 151.2 │ 160.6 │ 6760931 │
│ 4 │ 2020-09-30 │ 138.5 │ 178.8 │ 137.9 │ 177.5 │ 9005351 │
│ 5 │ 2020-08-31 │ 147.2 │ 152.1 │ 137.2 │ 138.3 │ 4865386 │
sort(df)
但是当我尝试在这个日期框上使用sort()
函数时,我得到LoadError:MethodError:no-method-matching-isless(::String,::Dates.Date)
我觉得这很奇怪,因为我在同一个excel文件中有另一个标签,上面有价格/天,这可以很好地排序。我看到的唯一区别是,在Excel文件中,“价格/月份”选项卡的“日期”字段为“日期”,而“价格/日期”选项卡的“日期”字段为“日期”。但在DataFrame中,两个选项卡都将日期字段设置为任意
我很难理解为什么prices/day选项卡使用的是
sort()
,而prices/month选项卡不使用,相反,它给了我LoadError
将列更改为相应的数据类型应该可以解决这个问题(推断类型):
现在,对日期进行排序很好:
df[sortperm(df.Date),1:2]
#5×2 DataFrame
# Row │ Date Openprice
# │ Date Any
#─────┼───────────────────────
# 1 │ 2020-08-31 147.2
# 2 │ 2020-09-30 138.5
# 3 │ 2020-10-30 178.4
# 4 │ 2020-11-30 160
# 5 │ 2020-12-23 189.1
也可以手动设置日期类型:
using Dates
df.Date = Dates.Date.(string.(df.Date), "yyyy-mm-dd")
#5-element Array{Date,1}:
# 2020-12-23
# 2020-11-30
# 2020-10-30
# 2020-09-30
# 2020-08-31
将列更改为相应的数据类型应该可以解决此问题(推断类型): 现在,对日期进行排序很好:
df[sortperm(df.Date),1:2]
#5×2 DataFrame
# Row │ Date Openprice
# │ Date Any
#─────┼───────────────────────
# 1 │ 2020-08-31 147.2
# 2 │ 2020-09-30 138.5
# 3 │ 2020-10-30 178.4
# 4 │ 2020-11-30 160
# 5 │ 2020-12-23 189.1
也可以手动设置日期类型:
using Dates
df.Date = Dates.Date.(string.(df.Date), "yyyy-mm-dd")
#5-element Array{Date,1}:
# 2020-12-23
# 2020-11-30
# 2020-10-30
# 2020-09-30
# 2020-08-31
infere\u eltypes=true
没有将“我的日期”列更改为数据类型日期。因此,我需要手动更改类型,正如您在第二个示例中所示,这非常有效。infere_eltypes=true
没有将我的日期列更改为数据类型日期。因此,我需要手动更改类型,正如您在第二个示例中所示,这非常有效。