빅데이터 관련 프로그래밍
- np.random.shuffle 과 np.random.permutation 정리 2021.07.26 1
- jupyter notebook 브라우저 크롬으로 지정 2가지 방법 2021.04.21
- jupyter에서 코드만 숨겼다 펼쳤다 하는 toggle 코드 2021.04.07
- jupyter notebook TOC 쓸 수 있게 extension 설치 명령어 2021.04.05 1
- 리스트 & 딕셔너리 연산자 정리 2019.05.17 1
- [중급4] 가변길이 인자 *args **kwargs with Decorator 2019.05.15
- [중급3] Decorator for 반복되는 내용을 함수에 입히기 2019.05.15
- [중급2] 리스트를 사용을 위한 Map, Filter, Reduce 2019.05.15
- [중급1] comprehension 연습 2019.05.15
- VS code 단축키 정리 2019.05.13 1
- 4. 가져온 날짜가 문자열(왼쪽정렬)일 때, 날짜데이터터로 한번에 변환(=DATEVALUE()) + 날짜뺄셈(복붙으로 값+원본)해보기 2019.05.05
- for문 유형 / 정수목과 나눈나머지 2019.05.04
- Windows Anaconda Jupyter notebook(주피터 노트북) 홈 디렉토리 변경 방법 2019.05.04
- 3. 엑셀 행 삽입의 3가지 방법( 단순 행 삽입 / 복사한 행 삽입 OR 표 만들어 단순 행 삽입) 2019.05.02 2
- 2. 병합된 셀을 하나씩 나눠서 DB형태로 변환하기 ( 이동옵션>빈셀>상대참조>Ctrl+enter>절대참조 ) 2019.05.02
np.random.shuffle 과 np.random.permutation 정리
1. shuffle은 inplace=True로 섞어준다.
2. permutation은 array를 반환한다.
3. permutation에 int1개만 넣으면, 그만큼 np.arange()를 만들어서 0부터 n-1개까지 shuflle후 array를 반환해준다.
'빅데이터 관련 프로그래밍 > pythonic practice' 카테고리의 다른 글
리스트 & 딕셔너리 연산자 정리 (1) | 2019.05.17 |
---|---|
[중급4] 가변길이 인자 *args **kwargs with Decorator (0) | 2019.05.15 |
[중급3] Decorator for 반복되는 내용을 함수에 입히기 (0) | 2019.05.15 |
[중급2] 리스트를 사용을 위한 Map, Filter, Reduce (0) | 2019.05.15 |
[중급1] comprehension 연습 (0) | 2019.05.15 |
jupyter notebook 브라우저 크롬으로 지정 2가지 방법
config파일 만들고, 윈도우의 크롬(+%s) 지정
- cmd에서 config 파일 생성
jupyter notebook --generate-config
- 생성된 jupyter_notebook_config.py의 경로로 가서 열고,
.browser
검색 - #c.NotebookApp.browser로 되어있는 주석을 풀고 windows10 크롬경로 + %s를 입력해주고 재시작
c.NotebookApp.browser = 'C:/Program Files (x86)/Google/Chrome/Application/chrome.exe %s'
크롬앱을 기본브라우저로 지정
- 크롬앱 -> 우측상단에 점점점 -> 설정
- 내리다 보면 기본 브라우저 -> 크롬으로 변경
'빅데이터 관련 프로그래밍' 카테고리의 다른 글
jupyter에서 코드만 숨겼다 펼쳤다 하는 toggle 코드 (0) | 2021.04.07 |
---|---|
jupyter notebook TOC 쓸 수 있게 extension 설치 명령어 (1) | 2021.04.05 |
jupyter에서 코드만 숨겼다 펼쳤다 하는 toggle 코드
display(
HTML('''
code_show=true;
function code_toggle() {
if (code_show){
$('div.input').hide();
} else {
$('div.input').show();
}
code_show = !code_show
}
$( document ).ready(code_toggle);
'빅데이터 관련 프로그래밍' 카테고리의 다른 글
jupyter notebook 브라우저 크롬으로 지정 2가지 방법 (0) | 2021.04.21 |
---|---|
jupyter notebook TOC 쓸 수 있게 extension 설치 명령어 (1) | 2021.04.05 |
jupyter notebook TOC 쓸 수 있게 extension 설치 명령어
cmd에서
pip install jupyter_contrib_nbextensions && jupyter contrib nbextension install
입력후 재접속
노트북 메인에서 Nbextensions가 생김 >
[체크해제] disable configuration for nbextensions -> Table of Contents 선택
'빅데이터 관련 프로그래밍' 카테고리의 다른 글
jupyter notebook 브라우저 크롬으로 지정 2가지 방법 (0) | 2021.04.21 |
---|---|
jupyter에서 코드만 숨겼다 펼쳤다 하는 toggle 코드 (0) | 2021.04.07 |
리스트 & 딕셔너리 연산자 정리
이 글은 코드잇
의 알고리즘 강의와 오픈소스
들을 참고하여 정리한 글입니다^^
리스트 & 딕셔너리 연산자 정리
'빅데이터 관련 프로그래밍 > pythonic practice' 카테고리의 다른 글
np.random.shuffle 과 np.random.permutation 정리 (1) | 2021.07.26 |
---|---|
[중급4] 가변길이 인자 *args **kwargs with Decorator (0) | 2019.05.15 |
[중급3] Decorator for 반복되는 내용을 함수에 입히기 (0) | 2019.05.15 |
[중급2] 리스트를 사용을 위한 Map, Filter, Reduce (0) | 2019.05.15 |
[중급1] comprehension 연습 (0) | 2019.05.15 |
[중급4] 가변길이 인자 *args **kwargs with Decorator
참고 사이트 : Intermediate python (http://book.pythontips.com/en/latest/)
참고 블로그 : https://3months.tistory.com/347?category=753896
*agrs 정의¶
*args
: non-keyworded arguments로요소 나열 or *리스트
이 들어가 함수내부에서리스트
로 사용
1) 함수 정의시 *를 붙혀서 인자로 만들고, 함수 내부에서는 리스트로 사용한다.
2) 함수 호출시, 여러요소를 나열해서 넣어준다.
3) 함수 호출시, 정의해논 리스트를 넣어줄려면 *를 붙혀서 넣어준다.
normal arg + *args¶
- 함수호출시, 여러요소를 리스트처럼 나열해서 넣어 사용 ( [ ] 리스트는 넣으면 안됨)
def test_var_args(first_arg, *args):
print('첫번째 변수 : ' , first_arg)
for arg in args:
print('*args 목록 : ', arg)
test_var_args('조재성', '김석영', '조재경', '조아라')
미리 만든 리스트를 * 붙혀서 전달하기¶
param = ['김석영', '조재경','조아라']
test_var_args('조재성', *param)
만약 안붙힌 리스트를 \args 자리에 전달하면?¶
- 함수내부에서 리스트로서 사용이 안되고, 덩어리체 붙어있다
- 나열해서 넣어주든지, *를 붙힌 리스트를 넣어준다
test_var_args('조재성', param)
**kwargs의 정의¶
**kwargs
: keyworded arguments로key1=value1, key2=value2 의 요소 나열 or **딕셔너리
이 들어가 함수내부에서딕셔너리
로 사용
1) 함수 정의시 **를 붙혀서 인자로 만들고, 함수 내부에서는 딕셔너리로 사용한다.
2) 함수 호출시, 여러 요소를 key1=value1 형태로 나열해서 넣어준다.
3) 함수 호출시, 정의된 딕셔너리를 넣어줄려면 **를 붙혀서 넣어준다.
def greet_me(**kwargs):
print('kwargs.items() : ',kwargs.items())
for key, value in kwargs.items():
print( f'{ key } (key) = { value } (value)')
key=value 형태로 요소를 나열하는 경우¶
greet_me(name = '조재성', 학교 = '동신대')
미리 정의한 딕셔너리에 **를 붙혀 대입¶
kwargs = {
'name' : '조재성',
'학교' : 'dsu'
}
greet_me(**kwargs)
만약 딕셔너리만 그대로 넣어버리면?¶
greet_me(kwargs)
decorator + 가변길이 인수목록(args, kwargs) 같이 사용하기¶
decorator복습
- decorator함수는 그것을 필요로하는 함수를 인자로 받아, 중복되는 내용과 함께 배치한다.
- 중복되는 내용을 decorator로 해결하고 싶은 함수는, @decorator함수 와 같이 정의한다.
- 함수를 실행해주면, decorator가 실행된다.
decorator의 문제점
- 데코당할 함수의 인자 개수가 같을 때만, 중복으로 사용할 수 있다.
- 만약, 함수1과 함수2의 인자 개수가 다를 때는, decorator를 반복해서 사용할 수 없다.
**kwargs 나 *args를 이용하여, 함수1과 함수2의 인자수가 다르더라도 반복해서 decorator를 사용할 수 있다.
decorator로 들어오는 함수를 반복되는 내용으로 wrapper해주는 wrapper함수의 인자를 넣어준다-> 내부에서 중복내용과 배치되는, 들어오는 함수도 인자를 넣어준다.
- 기존에는 들어오는 함수자체가 인자가 없는 함수를 넣어서 wrapper함수안에서도 함수의 인자 사용안하고 print만 했었다.
func(*args, **kwargs)
로 인자를 주면, 순서에 상관없이*리스트
나**딕셔너리
아무거나 대입해서 알아서 처리되는 특징- 함수의 인자가 한개라도 알아서 처리된다.
- 인자가 여러개 일 때는, *리스트나 **딕셔너리를 활용한다
- 인자가 3개이더라도, 초기값만 설정되어있다면, 2개만 넣어줘도 알아서 처리된다.
# decorator 정의
def logging_decorator(func):
def wrapper_function( *args, **kwargs):
print( func.__name__ + " 함수가 호출되었습니다.")
print( "함수호출 결과 : ", func(*args, **kwargs))
return wrapper_function
# 함수1 정의 with 데코레이터
@logging_decorator
def square_number(x):
return x**2
# 함수2 정의 with 데코레이터
@logging_decorator
def add_numbers(x=3, y=4):
return x+y
# 함수3 정의 with 데코레이터
@logging_decorator
def add_number(x, y, z=5):
return x+y
add_number()
# 인자가 한개라도 알아서 처리된다.
square_number(2)
add_number(2, 3)
# 인자가 여러개 일 때는, *리스트나 **딕셔너리를 활용한다
# 딕셔너리를 대입
add_numbers( **{"x" :6, "y":4})
# 리스트를 대입
add_numbers( *[3, 2])
# 인자가 3개이더라도, 초기값만 설정되어있다면, 2개만 넣어줘도 알아서 처리된다.
add_number(1, 2)
'빅데이터 관련 프로그래밍 > pythonic practice' 카테고리의 다른 글
np.random.shuffle 과 np.random.permutation 정리 (1) | 2021.07.26 |
---|---|
리스트 & 딕셔너리 연산자 정리 (1) | 2019.05.17 |
[중급3] Decorator for 반복되는 내용을 함수에 입히기 (0) | 2019.05.15 |
[중급2] 리스트를 사용을 위한 Map, Filter, Reduce (0) | 2019.05.15 |
[중급1] comprehension 연습 (0) | 2019.05.15 |
[중급3] Decorator for 반복되는 내용을 함수에 입히기
Decorator의 정의¶
- 각자 다른 함수인데도, 매번 중복해야하는 내용이 있다면
- 각 함수를 인자로 받은 뒤, 그안에 매번 중복되는 내용과 같이 새로운 함수를 정의하고
- 그 함수를 return해주는 함수를 만든다.
decoration 안할 경우¶
- 매 함수마다 before executing a_func() / after executing a_func() 를 출력하고 싶은데
- 항상 써줘야한다.
def a_function_requiring_decoration():
print("I am the function which needs some decoration to remove my foul smell")
# 첫줄과 3번째줄은 항상 중복해서 실행시키고 싶다
def b_function():
print("I am doing some boring work before executing a_func()")
print("I am the function which needs some decoration to remove my foul smell")
print("I am doing some boring work after executing a_func()")
a_function_requiring_decoration()
b_function()
decoration을 쓸 경우¶
# 1. 중복내용이 필요한 함수(a_func)를 인자로 받는 decorator 함수를 정의한다.
def a_new_decorator(a_func):
# 2. 들어온 함수와 함꼐 중복해야하는 내용까지 같이 수행하는 내부함수를 새롭게 정의한다.
def wrapTheFunction():
print("I am doing some boring work before executing a_func()")
a_func()
print("I am doing some boring work after executing a_func()")
# 3. decorator는 중복해야할 내용까지 포함한 함수를 반환해준다.
return wrapTheFunction
# 3. 중복해야하는 내용이 필요한 함수 정의
def a_function_requiring_decoration():
print("I am the function which needs some decoration to remove my foul smell")
# 4. decorator 함수에 , 중복해야하는 작업이 필요한 함수를 인자로 넣고, 새로운 함수를 return로 받자.
a_function_requiring_decoration = a_new_decorator(a_function_requiring_decoration)
# 5. 그 함수를 실행시켜보자.
a_function_requiring_decoration()
decorator에 기존함수 대입을 @로 구현¶
- decorator가 이미 작성된 상태에서
@decorator함수명
을 중복내용을 필요로 하는 함수정의
시 def윗줄에 적어준다.
@decorator 없이 일반 함수 정의¶
def a_function_requiring_decoration():
"""Hey you! Decorate me!"""
print("I am the function which needs some decoration to " "remove my foul smell")
a_function_requiring_decoration()
@decorator와 같이 정의하면 그 함수는 중복해야할 내용까지 같이 수행한다.¶
## 중복내용함수에 @decotator와 같이 정의
@a_new_decorator
def a_function_requiring_decoration():
"""Hey you! Decorate me!"""
print("I am the function which needs some decoration to " "remove my foul smell")
a_function_requiring_decoration()
실습해보기¶
def decorator_js(need_func):
print('decorator에 접속')
def wrapThefunction():
print('데코레이터로 매번 사용자 체크 중..')
print('들어온 함수 실행')
need_func()
print('데코레이터 끝')
return wrapThefunction
def some_func():
print('***어떤 함수 작동 중***')
some_func()
@decorator_js
def some_func_with_deco():
print('***어떤 함수 with decorator 작동 중***')
some_func_with_deco()
decorator의 사용¶
authentication_check
라는 함수를 decorator로 만들고, 이곳에서는 웹어플리케이션서의 특정 함수마다 중복해서 수행해야할 내용인 사용자 인증을 체크
한다고 하자. 만약 다른 함수를 실행할 때, 그 함수의 위에다가 위에다가 @authentication_check 만 붙이면, authentication을 알아서 해주게 된다. 즉
'빅데이터 관련 프로그래밍 > pythonic practice' 카테고리의 다른 글
리스트 & 딕셔너리 연산자 정리 (1) | 2019.05.17 |
---|---|
[중급4] 가변길이 인자 *args **kwargs with Decorator (0) | 2019.05.15 |
[중급2] 리스트를 사용을 위한 Map, Filter, Reduce (0) | 2019.05.15 |
[중급1] comprehension 연습 (0) | 2019.05.15 |
for문 유형 / 정수목과 나눈나머지 (0) | 2019.05.04 |
[중급2] 리스트를 사용을 위한 Map, Filter, Reduce
참고 블로그 : https://3months.tistory.com/338?category=753896
참고 사이트 : Intermediate python (http://book.pythontips.com/en/latest/)
MAP¶
map(lambda x: 새로운작업 , list)
형태로 iterator를 반환하므로 lambda함수로 기존리스트를 수정한 리스트를
next()
로 하나씩 뽑아내거나,list()
로 감싸서 한번에 가져올 수 있다.
map 없이새로운 리스트 반환하기¶
items = [1, 2, 3, 4, 5]
squared = []
for i in items:
squared.append(i ** 2)
squared
map을 사용하여 수정된 리스트를 한번에 반환¶
items = [1, 2, 3, 4, 5]
(lambda x : x**2, items)
square_map = map(lambda x : x**2, items)
square_map
next(map(lambda x : x**2, items))
list(square_map)
Filter¶
filter(lambda x : x조건 , list )
의 형태로 해당 list에서 조건을 만족시키는 요소만 뽑아올 수 있다. 마지막에는list()
로 감싸줘야 리스트로 가져온다.- comprehension 시 if문을 넣는것과 동일 하다
list_ = range(-5, 5)
list_
filter( lambda x : x <0, list_)
list( filter( lambda x : x <0, list_) )
## comprehenshion으로 구현
[ x for x in list_ if x<0 ]
Reduce¶
reduce(lambda x, y : x + y, 순서형 자료-**(리스트, 튜플, 문자열)**)
의 형태로 순서대로 x와 y에 차면서, 그결과는x에 누적되고
새로운 순서의 요소는 y에 들어와서 계산.
1부터 100까지 for문으로 합 구하기¶
sum_ = 0
for i in range(1, 101):
sum_ += i
sum_
1부터 100까지 reduce로 구하기¶
from functools import reduce
# (1) + (2) -> 3+ (3) -> 6+ (4)
reduce(lambda x, y : x+y, range(1, 101))
# 다른 예제 - 순서형자료에 list대신 문자열
reduce(lambda x, y : y + x, 'abc')
numpy로 쉽게 구하기¶
- 리스트들의 합을 np.sum()으로 구하기
마치 칼럼의 합을 쉽게 구하듯이
import numpy as np
np.sum( [x for x in range(1, 101)] )
'빅데이터 관련 프로그래밍 > pythonic practice' 카테고리의 다른 글
[중급4] 가변길이 인자 *args **kwargs with Decorator (0) | 2019.05.15 |
---|---|
[중급3] Decorator for 반복되는 내용을 함수에 입히기 (0) | 2019.05.15 |
[중급1] comprehension 연습 (0) | 2019.05.15 |
for문 유형 / 정수목과 나눈나머지 (0) | 2019.05.04 |
python random모듈 3개 정리 (randint, rand, randn) (9) | 2019.01.31 |
[중급1] comprehension 연습
for문 대체¶
temp = [2, 3, 4, 5]
temp
temp_new = list()
for i in temp:
temp_new.append(i**2)
temp_new
temp_new_comp = [ i**2 for i in temp]
temp_new_comp
np.array()로 감싸면 어레이도 생성¶
import numpy as np
np.array( [ i**2 for i in temp] )
for문 + if문 대체¶
- if else 는 for 문 앞에
[ 연산 if 조건else 연산2
for문 ] - if만 있으 때는 for 문 뒤에
[ 연산 for문 if 조건 ]
temp_new = list()
for i in temp:
if i > 3:
temp_new.append(i**2)
else:
temp_new.append(i)
temp_new
[ i**2 if i>3 \
else i \
for i in temp]
[ i**2 if i>3 else i for i in temp]
[i**2 for i in temp if i>3]
'빅데이터 관련 프로그래밍 > pythonic practice' 카테고리의 다른 글
[중급3] Decorator for 반복되는 내용을 함수에 입히기 (0) | 2019.05.15 |
---|---|
[중급2] 리스트를 사용을 위한 Map, Filter, Reduce (0) | 2019.05.15 |
for문 유형 / 정수목과 나눈나머지 (0) | 2019.05.04 |
python random모듈 3개 정리 (randint, rand, randn) (9) | 2019.01.31 |
list, set comprehension 정리 (0) | 2019.01.30 |
VS code 단축키 정리
Ctrl
+,
: 환경설정Ctrl
+K, O
: 폴더 열기(해당 프로젝트 열기)Ctrl
+Shift
+~
: 터미널 열기F2
: 변수이름바꾸기Ctrl
+Shift
+G
: git탭 열기
'빅데이터 관련 프로그래밍 > 단축키' 카테고리의 다른 글
Windows Anaconda Jupyter notebook(주피터 노트북) 홈 디렉토리 변경 방법 (0) | 2019.05.04 |
---|---|
R 마크다운 팁 + 단축키 (0) | 2019.01.30 |
jupyter notebook 필수 단축키 (0) | 2019.01.28 |
[Pycharm] 단축키 설정 및 한 줄 실행 (0) | 2018.12.30 |
날짜 데이터는 숫자로 되어있어서 더하거나 뺄 수있다.
default로는 숫자처럼, 셀 오른쪽에 붙는다.
그러나 다른문서에서 가져온 날자데이터가 문자열처럼 왼쪽정렬되어, 뺄셈
이 안된다면?
- 날자데이터의 앞에
'
를 입력하여문자열-날자데이터
를 임의로 만들었다.- 엑셀에서는 2017대신 17만 입력하여도 2017 자동인식
- 엑셀에서는 2017대신 17만 입력하여도 2017 자동인식
왼쪽 정렬된 문자열-날짜데이터는
더블클릭후 엔터
만 치더라도 날짜로 바뀌어 오른쪽정렬이 된다.(엑셀이 자동인식)- 그러나 일일히 그렇게 할 순 없다.
- 여기서는 강제로
'
입력해준 상태기 때문에, 안바뀐다.
=DATEVALUE()
를 이용하여, 문자열-날자데이터를 한번에 변환시켜보자.정상변환 되었다면, 우측정렬된 날짜데이터가 생김
(1) 변환시킬 필드를 세로 만든다.(2) 첫 셀만 선택하여,
=DATEVALUE(
입력후, 왼쪽데이터를 클릭 후 입력해준다.(만약 쌩둥맞은 숫자로 바뀌면, 셀서식>날짜)(3)
핸들바를 더블클릭
하여, 나머지행들에 전체적용해주기
날짜뺄셈
을 할때, 변환한=DATEVALUE(A2)
같은 서식으로는 엉뚱한 값이 나올 수 있다.
이럴때는
복사-붙혀넣기 > 값 및 원본서식
을 선택한다.수식만 제거하려면,
값
만 선택하면 됬지만, 날짜형식까지 유지하려면값 및 원본서식
을 선택해야한다.이후의 날짜 뺄셈은 잘된다.
'빅데이터 관련 프로그래밍 > └ 엑셀로 데이터 다루기' 카테고리의 다른 글
3. 엑셀 행 삽입의 3가지 방법( 단순 행 삽입 / 복사한 행 삽입 OR 표 만들어 단순 행 삽입) (2) | 2019.05.02 |
---|---|
2. 병합된 셀을 하나씩 나눠서 DB형태로 변환하기 ( 이동옵션>빈셀>상대참조>Ctrl+enter>절대참조 ) (0) | 2019.05.02 |
1. 데이터 만들 때, 주의점들(필드명, 그룹, 데이터 유효성 검사) (0) | 2019.05.01 |
for문 유형 / 정수목과 나눈나머지
for문 중 하나만 테스트 하려면?
print()
로 확인한 뒤, 다음줄에break
for line in lines:
mal_list = twitter.pos(line, norm=True, stem=True)
#test
print(mal_list)
break
리스트를 하나씩 도는 for문에서 index를 반환해야한다면?
for i in
range(len( list ))
: + <조건>- 리스트 길이만큼 돌면서 해당 길이를 이용
- len()은 1부터 개수
- range()는 0부터 개수-1까지 반복
for idx, val in
enumerate( list )
: + <조건>- 내장함수 이용
리스트의 index를 거꾸로 반환하는 for문
- for i in reversed( range(len()) ) : + <조건>
- reversed()는 range(len()) 0부터 개수-1까지의 idx를 역순으로 반환해줌
파이썬에서 정수몫과 나눈 나머지
- 정수 몫 :
//
ex> 7//2 = 3 - 나눈 나머지 :
%
ex> 7%2 = 1
'빅데이터 관련 프로그래밍 > pythonic practice' 카테고리의 다른 글
[중급3] Decorator for 반복되는 내용을 함수에 입히기 (0) | 2019.05.15 |
---|---|
[중급2] 리스트를 사용을 위한 Map, Filter, Reduce (0) | 2019.05.15 |
[중급1] comprehension 연습 (0) | 2019.05.15 |
python random모듈 3개 정리 (randint, rand, randn) (9) | 2019.01.31 |
list, set comprehension 정리 (0) | 2019.01.30 |
Windows Anaconda Jupyter notebook(주피터 노트북) 홈 디렉토리 변경 방법
먼저 쥬피터 환경설정 폴더인
C:\Users\is2js(유저명)\.jupyter
로 가서jupyter_notebook_config.py
를 연다._dir
로 검색하여 c.NotebookApp.notebook_dir = ''가#
으로 주석처리 되어있다. 이것을 푼 다음 아래와 같이 입력하면 된다.'/Users/is2js(유저명)/python_da(시작하고픈 폴더)/'
- 복사용 : '/Users/is2js/python_da/'
- C:/부터 시작해서 경로설정을 해줬었는데 계속해도 잘 안됬었다.ㅠ
'빅데이터 관련 프로그래밍 > 단축키' 카테고리의 다른 글
VS code 단축키 정리 (1) | 2019.05.13 |
---|---|
R 마크다운 팁 + 단축키 (0) | 2019.01.30 |
jupyter notebook 필수 단축키 (0) | 2019.01.28 |
[Pycharm] 단축키 설정 및 한 줄 실행 (0) | 2018.12.30 |
3. 엑셀 행 삽입의 3가지 방법( 단순 행 삽입 / 복사한 행 삽입 OR 표 만들어 단순 행 삽입)
아래와 같이 [합 행]에 SUM(B2:B3) 같이 +가 아닌 :로 계산된 수식이 적혀있다.
- 밑에 행을 선택한 상태에서
우클릭 > 행삽입
이나Ctrl + (+)
를 통해서 행을 삽입하면, 삽입된 행도 합계 수식안에 적용된다.- 만약 SUM(B2+B3)의 형태로 :이 아니면, 안된다.
- 만약 SUM(B2+B3)의 형태로 :이 아니면, 안된다.
그러나 문제점이 발생한다.
[평균]열(C열)은 앞의 [수익]열(B열)을 이용해서 = B2/2 와 같이 만들어졌는데, 일반적인 행삽입으로는 해당 수식이 사라진다.
- 즉, 삽입된 행은, 전체 수식에는 포함되지만, 행 자체의 수식은 삽입되지 않는 문제이다. 이럴 때는, 직접 수식을 만들어서 적는 수밖에 없다고 한다.
2. 수식을 가진 행 자체를 복사해서 행 삽입
하기
- 이 방법의 문제점은, 복사한 행의 값까지 복사가 되고 값을 바꾸면 되지만, 행의 값을 삭제하는 경우 함수식까지 삭제되어버린다.
가장 좋은 방법은
합산 행을 제외 표를 먼저 만들고, 행 삽입하기
이다. 즉, 복사한 행 삽입을 하지 않아도, 단순 행삽입으로 행자체의 상대참조 수식까지 다 복사가 된다.합산행 제외한 셀을 선택한 뒤
삽입 > 표
를 선택해준다.표를 만든상태에서는 단순 행삽입을 해도 자동으로 수식이 적용된다!
여러 행을 삽입하고 싶다면,
그 밑으로 그 행수만큼 선택한 뒤 삽입
해주면 된다.표 자체의 기본 디자인이 싫다면, 빈 디자인을 선택해주면 된다.
'빅데이터 관련 프로그래밍 > └ 엑셀로 데이터 다루기' 카테고리의 다른 글
4. 가져온 날짜가 문자열(왼쪽정렬)일 때, 날짜데이터터로 한번에 변환(=DATEVALUE()) + 날짜뺄셈(복붙으로 값+원본)해보기 (0) | 2019.05.05 |
---|---|
2. 병합된 셀을 하나씩 나눠서 DB형태로 변환하기 ( 이동옵션>빈셀>상대참조>Ctrl+enter>절대참조 ) (0) | 2019.05.02 |
1. 데이터 만들 때, 주의점들(필드명, 그룹, 데이터 유효성 검사) (0) | 2019.05.01 |
2. 병합된 셀을 하나씩 나눠서 DB형태로 변환하기 ( 이동옵션>빈셀>상대참조>Ctrl+enter>절대참조 )
병합된 셀은 정렬
이나 피벗테이블
등의 기능을 활용할 수 없다.(보기만 이쁜?)
Database
는 병합자체가 없기 때문에, 각 셀당 하나의 정보가 다 들어가야한다.
또한 PC방이라는 반복되는 명사를 고유명칭 + 한칸 띄고 + PC방 형태로 바꿔보자.
정원이라는 필드명에 xx명
에서 명
도 제거해보자.
병합된 셀을 DB처럼 바꾸기
병합된 셀을 전체선택한 뒤, 병합을 풀어보자.
빠른실행메뉴의 2번째로 지정해준, 셀 병합 단축키를 선택하여 풀어준다.
빈 셀
만 선택하기 위해서, 병합을 푼 셀들을 전체 선택한상태에서,홈>편집> 찾기 및 선택> *이동옵션* > *빈 셀*
을 선택한다.
my) [ Ctrl + G ] : 이동 -> [ 옵션 ] -> [빈 셀]C5가 선택된 상태이다. 여기에
=
를 입력한 뒤, 바로 위에 값이 들어갈 수 있게(상대참조)C4(윗셀 선택)
을 해준다. 그리고나서 선택된 모든 빈셀에서 다 적용시키기 위해Ctrl+Enter
를 입력해준다.상대참조 값들이 잘 들어가 있다. C5는 =C4가, B5는 =B4가 (바로 윗셀의 값)이 잘 들어가 있는 것 같다. 하지만, 다른 필드를 기준으로 정렬시 참조값이 깨질 수 있기 때문에, 상대참조로 채워넣은 값은
전체 복사를 한 뒤, 붙혀넣기 > 값만(V)
선택해서 절대값으로 변환시켜주어야한다.
특정단어를 한칸 뛰고 특정단어형태로 바꾸기 or xx명에서 명 빼기
제한된 범위에서 찾아바꾸기 이므로, 먼저 블록설정부터 한다.
PC방이라는 단어를 -> 한칸+PC방으로 바꿔보자.
정원필드에서 -명 빼주기
'빅데이터 관련 프로그래밍 > └ 엑셀로 데이터 다루기' 카테고리의 다른 글
4. 가져온 날짜가 문자열(왼쪽정렬)일 때, 날짜데이터터로 한번에 변환(=DATEVALUE()) + 날짜뺄셈(복붙으로 값+원본)해보기 (0) | 2019.05.05 |
---|---|
3. 엑셀 행 삽입의 3가지 방법( 단순 행 삽입 / 복사한 행 삽입 OR 표 만들어 단순 행 삽입) (2) | 2019.05.02 |
1. 데이터 만들 때, 주의점들(필드명, 그룹, 데이터 유효성 검사) (0) | 2019.05.01 |