d0 <- read.csv(file = 'https://stats.dip.jp/01_ds/data/dirty_data2.csv')

summary(d0)
##     会社名               気温            湿度             風速       
##  Length:22          Min.   :12.00   Min.   :-50.00   Min.   :-1.000  
##  Class :character   1st Qu.:20.00   1st Qu.: 30.00   1st Qu.: 1.000  
##  Mode  :character   Median :32.40   Median : 50.00   Median : 2.000  
##                     Mean   :28.18   Mean   : 39.73   Mean   : 2.052  
##                     3rd Qu.:34.10   3rd Qu.: 51.00   3rd Qu.: 4.000  
##                     Max.   :50.40   Max.   : 60.00   Max.   : 5.000  
##                     NA's   :1                        NA's   :1       
##   全天日射量MJ   
##  Min.   :-1.200  
##  1st Qu.: 0.340  
##  Median : 1.235  
##  Mean   : 2.701  
##  3rd Qu.: 2.385  
##  Max.   :23.400  
##  NA's   :2
library(DT)
datatable(d0)
d1 <- na.omit(d0)

summary(d1)
##     会社名               気温            湿度             風速       
##  Length:18          Min.   :12.00   Min.   :-50.00   Min.   :-1.000  
##  Class :character   1st Qu.:15.50   1st Qu.: 30.00   1st Qu.: 1.000  
##  Mode  :character   Median :32.40   Median : 50.00   Median : 2.000  
##                     Mean   :28.05   Mean   : 38.89   Mean   : 2.228  
##                     3rd Qu.:34.11   3rd Qu.: 51.00   3rd Qu.: 4.000  
##                     Max.   :50.40   Max.   : 60.00   Max.   : 5.000  
##   全天日射量MJ   
##  Min.   :-1.200  
##  1st Qu.: 0.340  
##  Median : 1.215  
##  Mean   : 2.791  
##  3rd Qu.: 2.250  
##  Max.   :23.400
datatable(d1)
is.tp <- -20 <= d1$気温 & d1$気温 <=  50
is.hm <-   0 <= d1$湿度 & d1$湿度 <= 100
is.ws <-   0 <= d1$風速 & d1$風速 <=  70

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
d2 <- d1[is.tp & is.hm & is.ws, ]

datatable(d2)
d3 <- d2
d3$気温 <- round(d2$気温, 1)
d3$湿度 <- round(d2$湿度, 0)
d3$風速 <- round(d2$風速, 0)

datatable(d3)
d3$会社名
##  [1] "東芝"                 "Toshiba"              "TOSHIBA"             
##  [4] "toshiba"              "東芝株式会社"         "東芝(株)"          
##  [7] "東芝(株)"             "トヨタ"               "Toyota"              
## [10] "Toyoda"               "トヨタ自動車株式会社" "トヨタ(株)"          
## [13] "toyota"               "TOYOTA"
LAB.TOSHIBA <- c("東芝", "tosiba","東芝(株)","東芝(株)","とうしば", "Toshiba", "TOSHIBA", "toshiba")

LAB.TOYOTA <- c("トヨタ", "トヨタ(株)", "Toyota", "TOYOTA", "toyota","Toyoda")

is.toshiba    <- d3$会社名 %in% LAB.TOSHIBA
is.toyota <- d3$会社名 %in% LAB.TOYOTA

d4 <- d3

d4$会社名[is.toshiba]    <- '東芝株式会社'
d4$会社名[is.toyota] <- 'トヨタ自動車株式会社'

d4$会社名
##  [1] "東芝株式会社"         "東芝株式会社"         "東芝株式会社"        
##  [4] "東芝株式会社"         "東芝株式会社"         "東芝株式会社"        
##  [7] "東芝株式会社"         "トヨタ自動車株式会社" "トヨタ自動車株式会社"
## [10] "トヨタ自動車株式会社" "トヨタ自動車株式会社" "トヨタ自動車株式会社"
## [13] "トヨタ自動車株式会社" "トヨタ自動車株式会社"
datatable(d4)
import pandas as pd
d0 = pd.read_csv('https://stats.dip.jp/01_ds/data/dirty_data2.csv')
d0.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
d1 = d0.dropna()
d1
##            会社名       気温    湿度   風速  全天日射量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 <= d1['気温']) & (d1['気温'] <=  50)
is_hm = (  0 <= d1['湿度']) & (d1['湿度'] <= 100)
is_ws = (  0 <= d1['風速']) & (d1['風速'] <=  70)

d2 = d1[is_tp & is_hm & is_ws]
d2
##            会社名       気温    湿度   風速  全天日射量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
## 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
## 18      トヨタ(株)  12.0000  30.0  5.0   1.4400
## 19      toyota  34.1134  51.0  2.0   0.5500
## 21      TOYOTA  34.1000  51.0  2.0  23.4000
d3 = d2
d3 = d2.round({'気温':1, '湿度':0, '風速':0})
d3
##            会社名    気温    湿度   風速  全天日射量MJ
## 0           東芝  14.0  50.0  4.0   1.2300
## 1      Toshiba  38.2  54.0  1.0   2.3300
## 2      TOSHIBA  20.4  20.0  0.0   2.0100
## 3      toshiba  34.1  51.0  2.0   0.0200
## 4       東芝株式会社  20.0  60.0  4.0   0.2000
## 5        東芝(株)  32.4  49.0  1.0   1.2000
## 6        東芝(株)  12.0  30.0  5.0   1.1111
## 12         トヨタ  14.0  50.0  4.0   1.6600
## 13      Toyota  38.2  54.0  1.0  -0.3000
## 15      Toyoda  34.1  51.0  2.0  10.0100
## 16  トヨタ自動車株式会社  20.0  60.0  4.0   3.1100
## 18      トヨタ(株)  12.0  30.0  5.0   1.4400
## 19      toyota  34.1  51.0  2.0   0.5500
## 21      TOYOTA  34.1  51.0  2.0  23.4000
LAB_TOSHIBA = {"東芝", "tosiba","東芝(株)","東芝(株)","とうしば", "Toshiba", "TOSHIBA", "toshiba"}

LAB_TOYOTA = {"トヨタ", "トヨタ(株)", "Toyota", "TOYOTA", "toyota","Toyoda"}

for i, row in d3.iterrows():
  if row['会社名'] in LAB_TOSHIBA:
    d3.at[i, '会社名'] = '東芝株式会社'
    
for i, row in d3.iterrows():
  if row['会社名'] in LAB_TOYOTA:
    d3.at[i, '会社名'] = 'トヨタ自動車株式会社'

d3
##            会社名    気温    湿度   風速  全天日射量MJ
## 0       東芝株式会社  14.0  50.0  4.0   1.2300
## 1       東芝株式会社  38.2  54.0  1.0   2.3300
## 2       東芝株式会社  20.4  20.0  0.0   2.0100
## 3       東芝株式会社  34.1  51.0  2.0   0.0200
## 4       東芝株式会社  20.0  60.0  4.0   0.2000
## 5       東芝株式会社  32.4  49.0  1.0   1.2000
## 6       東芝株式会社  12.0  30.0  5.0   1.1111
## 12  トヨタ自動車株式会社  14.0  50.0  4.0   1.6600
## 13  トヨタ自動車株式会社  38.2  54.0  1.0  -0.3000
## 15  トヨタ自動車株式会社  34.1  51.0  2.0  10.0100
## 16  トヨタ自動車株式会社  20.0  60.0  4.0   3.1100
## 18  トヨタ自動車株式会社  12.0  30.0  5.0   1.4400
## 19  トヨタ自動車株式会社  34.1  51.0  2.0   0.5500
## 21  トヨタ自動車株式会社  34.1  51.0  2.0  23.4000