본문 바로가기

Code Snippets

(17)
[Pandas] 짝수행, 홀수행만 뽑아내기 원본 데이터프레임이 이렇게 있을 때 1) 짝수행만 뽑아내기 df3 = df2.iloc[::2,:] df3 2) 홀수행만 뽑아내기 df3 = df2.iloc[1::2,:] df3 코드 해석 df2.iloc[1::2,:] df [a : b : c, : ]일 때, 첫번째 [a : b : c] 부분은 행을 선택하는 부분 [:]부분은 열을 고르는 부분 1) [a : b : c] 는 'a 행부터 시작해서, b행까지 선택하고, step은 c' 만약 a가 생략되어 있으면 첫행 (0행) 부터 선택 만약 b가 생략되어 있으면 끝까지 선택 그래서 [1::2]는 '1행부터 끝까지, step(간격)은 2로 두고 선택하기 2) [:]은 모든 행/열을 선택한다는 뜻 (그래서 df2.iloc[:,:]는 df2랑 같음)
[AWS Amplify] OAuth 2.0으로 Google 로그인 설정하기 AWS Amplify에서 OAuth를 통해서 구글 등 제3자인증을 가능하게 하는 방법은 나름 간편하고, 아래 메뉴얼대로 하면 아무 문제없이 진행할 수 있을줄 알았지만... 의외로 몇가지 면에서 시행착오를 겪게 되어 시행착오를 반복하지 않기 위해 기록을 남겨본다. 순서 1단계 : Auth Provider Setup OAuth는 어떻게 보면 귀찮고 번거로운 유저 인증 작업을 구글, 페이스북 등 제 3자가 대신 해주는 시스템이다. 이를 위해서 는 제3자가 인증을 해줄 수 있게 해당 플랫폼에 가서 설정을 몇가지 해주면 된다. 구글의 경우 구글클라우드플랫폼에 들어가서 아래 순서로 설정을 해주면 되고, 관련 설명은 AWS docs가 잘 나와있다. https://docs.amplify.aws/lib/auth/soci..
[Pandas] 여러개의 데이터프레임을 효율적으로 합치는 방법 Pandas로 데이터 전처리를 하다보면 여러개의 데이터프레임을 합쳐야 하는 경우가 굉장히 많다. 그냥 빈 데이터프레임을 만든 후, append로 데이터프레임을 계속 키워나가도 되긴 하지만, 이 경우 속도 면에서 엄청난 답답함을 경험하게 된다. 주로 아래 구조로 합치는데, 소요시간 및 리소스 측면에서 매우 만족스럽다. # 1단계 : 내가 합칠 데이터프레임들을 담을 list 만들기 dfs = [] # 2단계 : for loop를 통해서 df를 하나씩 만들고, list 안에 담아두기 for i in range (0,100): small_df = myfunction(i) dfs.append(small_df) # 또는 for small_df in 'some_function_that_yields_dataframes..
[Android 개발] Sqlite DB를 csv로 내보내기 안드로이드 11부터는 external storage에 파일 쓰는 절차가 복잡해졌다. 단순한 코드를 위해서 파일 경로는 shared directory인 'Downloads'로 일괄 지정하기 public class MainActivity extends AppCompatActivity { //db handler 우선 선언 private DBHandler dbHandler; private void exportDB() { // 파일 경로를 Download로 지정 File root = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS); String nowTime = DateTimeFormatter.ofPattern("yyyy..
[Android 개발] 버튼 클릭 시 runtime permission 허용해주기 이제는 접근권한이 필요한 안드로이드 앱을 개발하려면 유저가 runtime 에서 permission을 허용하도록 코드를 작성해야 한다. 아래는 버튼을 클릭했을 때, 디바이스에 해당 권한이 있는지 확인해서 권한이 없으면 권한을 허용하도록 안내하는 창을 뛰워본다. public class MainActivity extends AppCompatActivity { / 먼저 MainActivity Scope에서 상수 지정해주기 (상수 값은 100이든 1이든 상관없음) public static final int MY_PERMISSIONS_WRITE_EXTERNAL_STORAGE = 100; protected void onCreate(Bundle savedInstanceState) { super.onCreate(save..
엑셀 표의 열을 이용해서 동적 드롭다운 목록 만들기 1) 이름 정의로 표의 열을 어떤 이름으로 지정 2) 그 이름("열2")을 셀에다가 써놓기 3) 데이터 유효성분석에서 indirect("그 이름이 있는 셀") ※ 작동원리 : indirect(셀번호)로 그 셀번호에 대응되는 column이 지정되는 것
윈도우10에서 SSH 접속 시 pem 파일 권한변경 EC2 인스턴스를 SSH로 접속하고 싶을 때는, pem 파일을 활용해야 한다. 그런데 보안특성 상 AWS 홈페이지에서 다운받은 pem 파일을 그대로 사용하면 permission 에러가 난다. 파일 자체에 권한이 너무 많이 부여돼서 위험하니, 권한을 제한하라는 경고 문구가 나온다. 아래 문구처럼 나온다... @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: UNPROTECTED PRIVATE KEY FILE! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Permissions 0644 for 'amazonec2.pem' are too open. It is recomm..
[VBA] HTML Table 크롤링 (HTML Object Library, XML) 코드 'html table 뽑아내는 vba 코드 ​ Sub Get_table() Dim ws As Worksheet, results(), i As Long, s As Long Dim TK As String Dim LastRow As Long Dim html As MSHTML.HTMLDocument Dim data, trow, td As Object ​ Dim split1() As String, split2() As String, split3() As String, split4() As String 'LastRow = Worksheets("kmtc").Cells(Rows.Count, 3).End(xlUp).Row Dim URL1, URL2, URL3, FINAL As String ​ Set html = N..