Register
Login
Resources
Docs Blog Datasets Glossary Case Studies Tutorials & Webinars
Product
Data Engine LLMs Platform Enterprise
Pricing Explore
Connect to our Discord channel

joinTable.hy 2.0 KB

You have to be logged in to leave a comment. Sign In
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
  1. (import [pandas :as pd])
  2. (defn extract-dev-id [inp]
  3. "Format of inp: pointID-StationID-roomNo-combinatorNo-stringNo
  4. For example: 1025744-SYGD-32-14-16"
  5. (setv syms (.split inp "-"))
  6. (+ (. syms [2]) "00" (. syms [3]) (. syms [4]))) ; here 00 is a dummy inverter No
  7. (setv probes (as-> "probes.csv" it
  8. (.read_csv pd it
  9. :header None
  10. :names ["pointID" "fullDesc" "remark"]
  11. :dtype {"pointID" int "fullDesc" str "remark" int})
  12. (. it [(= 0 it.remark)])
  13. (.assign it :STATION_ID
  14. (fn [x] (.map x.fullDesc (fn [y] (. (.split y "-") [1]) ))))
  15. (.assign it :DEVICE_ID
  16. (fn [x] (.map x.fullDesc extract-dev-id)))))
  17. (setv probe-data (.read_csv pd "final.csv"
  18. :header None
  19. :names ["PROBEID" "MONITOR_TIME" "CURRENT_VALUE" "VOLTAGE_VALUE"
  20. "POWER_VALUE" "IRRADIANCE" "TEMPERATURE"]
  21. :dtype {"PROBEID" int "CURRENT_VALUE" float "VOLTAGE_VALUE" float
  22. "POWER_VALUE" float "IRRADIANCE" float "TEMPERATURE" float}
  23. :parse_dates ["MONITOR_TIME"]))
  24. (as-> probe-data it
  25. (.merge pd it probes :how "inner" :left-on "PROBEID" :right-on "pointID")
  26. (.sort_values it :by ["DEVICE_ID" "MONITOR_TIME"])
  27. (.to_csv it "resHy.csv"
  28. :index False
  29. :columns ["STATION_ID" "DEVICE_ID" "MONITOR_TIME" "VOLTAGE_VALUE" "CURRENT_VALUE"
  30. "POWER_VALUE" "TEMPERATURE" "IRRADIANCE"]))
  31. (as-> probe-data it
  32. (.merge pd it probes :how "inner" :left-on "PROBEID" :right-on "pointID")
  33. (.DataFrame pd it :columns ["DEVICE_ID"])
  34. (.sort_values it :by ["DEVICE_ID"])
  35. (.drop_duplicates it)
  36. (.to_csv it "devHy.csv"
  37. :index False))
  38. (as-> probe-data it
  39. (.merge pd it probes :how "inner" :left-on "PROBEID" :right-on "pointID")
  40. (.DataFrame pd it :columns ["DEVICE_ID" "MONITOR_TIME"])
  41. (.sort_values it :by ["DEVICE_ID" "MONITOR_TIME"])
  42. (.drop_duplicates it)
  43. (.to_csv it "devtimeHy.csv"
  44. :index False))
Tip!

Press p or to see the previous file or, n or to see the next file

Comments

Loading...