I have a dataframe with over 100,000 rows and 200 columns
there are some nan values in FALLDOWN_FLOOR
column so I would like to extract int value out of FALLDOWN_LOCATION and fill nan values in FALLDOWN_FLOOR.
here is the example of FALLDOWN_LOCATION
COLUMN
9 도로옆 옹벽/10층
106 5층 빌라에서 1층으로 투신함
109 병원 7층 옥상 투신
112 15층 아파트 베란다에서 투신
113 10층
129 14층
133 아파트 13층과 14층 사이 계단 창문으로 뛰어내림
136 아파트 13층 높이에서 투신하여 2층 난간으로 떨어짐.
I want to put int value whatever comes with '층' first so desired output of FALLDOWN_FLOOR
column would be like this:
9 10
106 5
109 7
112 15
113 10
129 14
133 13
136 13
so when I input df.loc[con, ['FALLDOWN_FLOOR','FALLDOWN_LOCATION']]
the output should be like this:
FALLDOWN_FLOOR FALLDOWN_LOCATIOIN
9 10 도로옆 옹벽/10층
106 5 5층 빌라에서 1층으로 투신함
109 7 병원 7층 옥상 투신
112 15 15층 아파트 베란다에서 투신
113 10 10층
129 14 14층
133 13 아파트 13층과 14층 사이 계단 창문으로 뛰어내림
136 13 아파트 13층 높이에서 투신하여 2층 난간으로 떨어짐.
CodePudding user response:
Use Series.str.extract
with digits before 층
:
df['FALLDOWN_FLOOR'] = df['FALLDOWN_LOCATION'].str.extract(r'(\d )층', expand=False)
print (df[['FALLDOWN_FLOOR','FALLDOWN_LOCATION']])
FALLDOWN_FLOOR FALLDOWN_LOCATION
i
9 10 도로옆 옹벽/10층
106 5 5층 빌라에서 1층으로 투신함
109 7 병원 7층 옥상 투신
112 15 15층 아파트 베란다에서 투신
113 10 10층
129 14 14층
133 13 아파트 13층과 14층 사이 계단 창문으로 뛰어내림
136 13 아파트 13층 높이에서 투신하여 2층 난간으로 떨어짐.