decide range
is.tp <- -20 <= d1$気温 & d1$気温 <= 50
is.hm <- 0 <= d1$湿度 & d1$湿度 <= 100
is.ws <- 0 <= d1$風速 & d1$風速 <= 70
is.mj <- 0 <= d1$全天日射量MJ &d1$全天日射量MJ <= 4.00
summary(is.tp)
## Mode FALSE TRUE
## logical 2 16
summary(is.hm)
## Mode FALSE TRUE
## logical 1 17
summary(is.ws)
## Mode FALSE TRUE
## logical 1 17
summary(is.mj)
## Mode FALSE TRUE
## logical 4 14
d2 <- d1[is.tp & is.hm & is.ws &is.mj, ]
datatable(d2,options = list(pageLength=14))
d3 <- d2
d3$気温 <- round(d2$気温, 1)
d3$湿度 <- round(d2$湿度, 0)
d3$風速 <- round(d2$風速, 0)
d3$全天日射量MJ <- round(d2$全天日射量MJ,1)
datatable(d3,options = list(pageLength=11))
unify name
d3$会社名
## [1] "東芝" "Toshiba" "TOSHIBA"
## [4] "toshiba" "東芝株式会社" "東芝(株)"
## [7] "東芝(株)" "トヨタ" "トヨタ自動車株式会社"
## [10] "トヨタ(株)" "toyota"
LAB.TOSHIBA <- c('東芝','Toshiba','TOSHIBA','toshiba','東芝株式会社','東芝','東芝(株)','東芝(株)')
LAB.TOYOTA <- c('トヨタ','トヨタ自動車株式会社','トヨタ(株)','toyota')
is.toshiba <- d3$会社名 %in% LAB.TOSHIBA
is.toyota <- d3$会社名 %in% LAB.TOYOTA
d4 <- d3
d4$会社名[is.toshiba] <- '東芝株式会社'
d4$会社名[is.toyota] <- 'トヨタ株式会社'
d4$会社名
## [1] "東芝株式会社" "東芝株式会社" "東芝株式会社" "東芝株式会社"
## [5] "東芝株式会社" "東芝株式会社" "東芝株式会社" "トヨタ株式会社"
## [9] "トヨタ株式会社" "トヨタ株式会社" "トヨタ株式会社"
datatable(d4,options=list(pageLength=11))
import pandas as pd
a=pd.read_csv('https://stats.dip.jp/01_ds/data/dirty_data2.csv')
a.head()
## 会社名 気温 湿度 風速 全天日射量MJ
## 0 東芝 14.0 50.0 4.0 1.23
## 1 Toshiba 38.2 54.0 1.1 2.33
## 2 TOSHIBA 20.4 20.0 0.0 2.01
## 3 toshiba 34.1 51.0 2.0 0.02
## 4 東芝株式会社 20.0 60.0 4.0 0.20
a1 = a.dropna()
a1
## 会社名 気温 湿度 風速 全天日射量MJ
## 0 東芝 14.0000 50.0 4.0 1.2300
## 1 Toshiba 38.2000 54.0 1.1 2.3300
## 2 TOSHIBA 20.4000 20.0 0.0 2.0100
## 3 toshiba 34.1000 51.0 2.0 0.0200
## 4 東芝株式会社 20.0000 60.0 4.0 0.2000
## 5 東芝(株) 32.4000 49.1 1.0 1.2000
## 6 東芝(株) 12.0000 30.0 5.0 1.1111
## 8 TOSHIBA 50.4000 20.0 0.0 -1.2000
## 11 とうしば 14.0000 -50.0 4.0 0.3400
## 12 トヨタ 14.0000 50.0 4.0 1.6600
## 13 Toyota 38.2000 54.0 1.0 -0.3000
## 15 Toyoda 34.1000 51.0 2.0 10.0100
## 16 トヨタ自動車株式会社 20.0000 60.0 4.0 3.1100
## 17 Toyota(株) 32.4000 49.0 -1.0 2.7800
## 18 トヨタ(株) 12.0000 30.0 5.0 1.4400
## 19 toyota 34.1134 51.0 2.0 0.5500
## 20 Tokyoda 50.4000 20.0 0.0 0.3400
## 21 TOYOTA 34.1000 51.0 2.0 23.4000
is_tp = (-20 <= a1['気温'])&(a1['気温'] <= 50)
is_hm = (0 <= a1['湿度'])&(a1['湿度'] <= 100)
is_ws = (0 <= a1['風速'])&(a1['風速'] <= 70)
is_mj = (0 <= a1['全天日射量MJ'])&(a1['全天日射量MJ'] <= 4.00)
a2=a1[is_tp & is_hm & is_ws & is_mj]
a2
## 会社名 気温 湿度 風速 全天日射量MJ
## 0 東芝 14.0000 50.0 4.0 1.2300
## 1 Toshiba 38.2000 54.0 1.1 2.3300
## 2 TOSHIBA 20.4000 20.0 0.0 2.0100
## 3 toshiba 34.1000 51.0 2.0 0.0200
## 4 東芝株式会社 20.0000 60.0 4.0 0.2000
## 5 東芝(株) 32.4000 49.1 1.0 1.2000
## 6 東芝(株) 12.0000 30.0 5.0 1.1111
## 12 トヨタ 14.0000 50.0 4.0 1.6600
## 16 トヨタ自動車株式会社 20.0000 60.0 4.0 3.1100
## 18 トヨタ(株) 12.0000 30.0 5.0 1.4400
## 19 toyota 34.1134 51.0 2.0 0.5500
a3 = a2
a3 = a2.round({'気温':1,'湿度':0,'風速':0,'全天日射量MJ':2})
a3
## 会社名 気温 湿度 風速 全天日射量MJ
## 0 東芝 14.0 50.0 4.0 1.23
## 1 Toshiba 38.2 54.0 1.0 2.33
## 2 TOSHIBA 20.4 20.0 0.0 2.01
## 3 toshiba 34.1 51.0 2.0 0.02
## 4 東芝株式会社 20.0 60.0 4.0 0.20
## 5 東芝(株) 32.4 49.0 1.0 1.20
## 6 東芝(株) 12.0 30.0 5.0 1.11
## 12 トヨタ 14.0 50.0 4.0 1.66
## 16 トヨタ自動車株式会社 20.0 60.0 4.0 3.11
## 18 トヨタ(株) 12.0 30.0 5.0 1.44
## 19 toyota 34.1 51.0 2.0 0.55
LAB_TOSHIBA = {'東芝','Toshiba','TOSHIBA','toshiba','東芝株式会社','東芝','東芝(株)','東芝(株)'}
LAB_TOYOTA = {'トヨタ','トヨタ自動車株式会社','トヨタ(株)','toyota'}
for i, row in a3.iterrows():
if row['会社名'] in LAB_TOSHIBA:
a3.at[i,'会社名']='東芝株式会社'
for i, row in a3.iterrows():
if row['会社名'] in LAB_TOYOTA:
a3.at[i,'会社名']='トヨタ株式会社'
a3
## 会社名 気温 湿度 風速 全天日射量MJ
## 0 東芝株式会社 14.0 50.0 4.0 1.23
## 1 東芝株式会社 38.2 54.0 1.0 2.33
## 2 東芝株式会社 20.4 20.0 0.0 2.01
## 3 東芝株式会社 34.1 51.0 2.0 0.02
## 4 東芝株式会社 20.0 60.0 4.0 0.20
## 5 東芝株式会社 32.4 49.0 1.0 1.20
## 6 東芝株式会社 12.0 30.0 5.0 1.11
## 12 トヨタ株式会社 14.0 50.0 4.0 1.66
## 16 トヨタ株式会社 20.0 60.0 4.0 3.11
## 18 トヨタ株式会社 12.0 30.0 5.0 1.44
## 19 トヨタ株式会社 34.1 51.0 2.0 0.55
library(reticulate)
## Warning: パッケージ 'reticulate' はバージョン 4.4.1 の R の下で造られました
datatable(py$a3)