본문 바로가기

Study/class note

python / 문자열(인덱싱, 슬라이싱)

075 문자열에서 특정 위치의 문자 얻기

문자열에서 특정 위치의 문자를 얻는 방법은 인덱싱을 이용하는 것.

인덱스는 0번부터 시작. 파이썬 인덱스는 음수도 가능

print('scott'[0])   # s
print('scott'[2])   # o

문제283. 아래의 txt 변수에서 맨끝의 철자인 t를 출력하시오

txt = 'A tale that was not right'
print(txt[-1])

문제284. 아래의 SQL을 판다스로 구현하시오

-- SQL
select substr(ename, -1, 1)
 from emp;
# 판다스
emp = pd.read_csv("c:\\data\\emp2.csv")

emp['ename'].apply(lambda x:x[-1])
# emp.ename.apply(lambda x:x[-1])  <= 컬럼에 대괄호 쓰기 싫으면 이렇게 써도 가능


# 함수를 써서 불러와도 됨
def func1(str_val):
    return str_val[-1]

emp.ename.apply(func1)

lambda는 이름없는 한줄짜리 함수

 

문제285. 아래의 SQL을 판다스로 구현하시오

-- SQL
select substr(ename, 2, 1)
 from emp;
# 판다스
def func1(str_val):
    return str_val[1]

emp.ename.apply(func1)

	# 또는
    
emp.ename.apply(lambda x:x[1])

 


076 문자열에서 지정한 구간의 문자열 얻기

문자열에서 특정 구간에 있는 문자열을 얻으려면 슬라이싱을 이용하면 됨.

a = 'scott'

print(a[0:2])   # sc
print(a[3:])    # tt
print(a[:3])    # sco

문제286. 아래의 SQL을 판다스로 구현하시오.

-- SQL
select ename, substr(ename, 1, 3)
 from emp;
# 판다스
emp['ename2'] = emp['ename'].apply(lambda x:x[:3])
emp[['ename','ename2']]

	#또는
    
def func1(str_val):
    return str_val[:3]

emp.ename.apply(func1)

문제287. 아래의 SQL을 판다스로 구현하시오.

-- SQL
select ename,substr(ename, -2,2)
 from emp;
# 판다스
emp['ename2'] = emp['ename'].apply(lambda x:x[-2:])
emp[['ename','ename2']]

 

반응형