Git은 분산 버전 관리 시스템으로, 소스 코드를 효과적으로 관리하고 협업할 수 있도록 도와줍니다. Git의 주요 명령어들을 이해하면 기본적인 작업과 협업을 쉽게 수행할 수 있습니다. 주요 커맨드는 다음과 같습니다:

 

1. 설정 관련

git config --global user.name "Your Name"

사용자 이름 설정.

git config --global user.email "your.email@example.com"

사용자 이메일 설정.

git config --list

현재 설정 확인.

 

2. 저장소 초기화 및 클론

git init

현재 디렉토리를 Git 저장소로 초기화.

git clone <repository_url>

원격 저장소를 로컬로 복제.

 

3. 파일 상태 확인

git status

파일의 상태 확인(수정됨, 추가됨, 삭제됨 등).

git diff

수정된 내용 확인.

 

4. 파일 추가 및 커밋

git add <file>

특정 파일을 스테이징 영역에 추가.

git add .

현재 디렉토리의 모든 변경 사항을 스테이징 영역에 추가.

git commit -m "Commit message"

스테이징 영역의 변경 사항을 커밋.

git commit --amend

마지막 커밋 메시지를 수정.

 

5. 브랜치 관리

git branch

현재 브랜치 목록 확인.

git branch <branch_name>

새로운 브랜치 생성.

git checkout <branch_name>

특정 브랜치로 전환.

git checkout -b <branch_name>

브랜치를 생성하고 바로 전환.

git branch -d <branch_name>

브랜치 삭제.

 

6. 병합 및 충돌 해결

git merge <branch_name>

다른 브랜치를 현재 브랜치로 병합.

충돌 발생 시:

충돌 파일을 수정하고 git addgit commit.

 

7. 원격 저장소 작업

git remote add origin <repository_url>

원격 저장소 추가.

git push origin <branch_name>

로컬 브랜치를 원격 저장소에 푸시.

git pull origin <branch_name>

원격 저장소에서 변경 사항을 가져와 병합.

git fetch

원격 저장소의 최신 상태를 로컬로 가져옴(병합은 아님).

 

8. 로그 및 히스토리 확인

git log

커밋 로그 확인.

git log --oneline

간단한 형식으로 커밋 로그 확인.

git show <commit_hash>

특정 커밋의 상세 정보 확인.

 

9. 파일 복구 및 되돌리기

git checkout -- <file>

수정된 파일을 마지막 커밋 상태로 되돌림.

git reset <file>

스테이징 영역에서 파일 제거.

git reset --hard <commit_hash>

특정 커밋 상태로 되돌림.

 

10. 태그 관리

git tag <tag_name>

태그 생성.

git tag

태그 목록 확인.

git push origin <tag_name>

태그 푸시.

 

 

Pandas의 melt 메서드는 데이터프레임을 길게(long format) 변환하는 데 사용됩니다. 이는 열(column)을 행(row)으로 “녹이는” 방식으로, 데이터 분석이나 시각화를 위해 데이터 구조를 재구성할 때 유용합니다.

 

주요 매개변수

id_vars: 녹이지 않을 열을 지정합니다. 이 열들은 결과 데이터프레임에서 고정된 열로 유지됩니다.

value_vars: 녹일 열을 지정합니다. 지정된 열들은 행으로 변환됩니다. 기본값은 나머지 모든 열입니다.

var_name: 녹여진 열의 이름을 지정합니다. 기본값은 'variable'입니다.

value_name: 녹여진 값의 이름을 지정합니다. 기본값은 'value'입니다.

 

사용 목적

데이터를 wide format에서 long format으로 변환

시각화 라이브러리(e.g., Seaborn, Matplotlib)에서 사용하는 데이터 형태로 변환

데이터 정리와 조작

 

예제 코드

 

다음과 같은 데이터프레임이 있다고 가정해봅시다.

 

import pandas as pd

 

# 샘플 데이터프레임 생성

df = pd.DataFrame({

    'Name': ['Alice', 'Bob', 'Charlie'],

    'Math': [85, 78, 92],

    'Science': [88, 89, 94],

    'English': [90, 80, 85]

})

 

print("원본 데이터프레임:")

print(df)

 

출력:

 

      Name  Math  Science  English

0    Alice    85       88       90

1      Bob    78       89       80

2  Charlie    92       94       85

 

데이터프레임을 melt 사용해 변환

 

# melt 메서드 사용

melted_df = pd.melt(df, id_vars=['Name'], value_vars=['Math', 'Science', 'English'],

                    var_name='Subject', value_name='Score')

 

print("\nMelt 메서드로 변환된 데이터프레임:")

print(melted_df)

 

출력:

 

      Name   Subject  Score

0    Alice      Math     85

1      Bob      Math     78

2  Charlie      Math     92

3    Alice   Science     88

4      Bob   Science     89

5  Charlie   Science     94

6    Alice   English     90

7      Bob   English     80

8  Charlie   English     85

 

설명

1. id_vars=['Name']: Name 열은 고정되어 녹지 않습니다.

2. value_vars=['Math', 'Science', 'English']: 이 열들이 녹여져서 Subject 열로 변환됩니다.

3. var_name='Subject': 녹여진 열의 이름이 Subject가 됩니다.

4. value_name='Score': 값의 열 이름이 Score가 됩니다.

 

요약

 

melt 메서드는 데이터를 깔끔한 형태로 재구성해 데이터 분석과 시각화에 적합한 형식으로 변환합니다. 이를 활용하면 복잡한 데이터 구조를 효율적으로 다룰 수 있습니다.

설치

pip install [package name]

 

삭제

pip uninstall [package name]

 

업데이트

pip upgrade [package name]

 

설치된 패키지 목록

pip list

 

패키지 정보 확인

pip show [package name]



http://www.mojohaus.org/build-helper-maven-plugin/



참고: http://spark.apache.org/docs/1.6.2/sql-programming-guide.html


// sc is an existing SparkContext.
val sqlContext = new org.apache.spark.sql.SQLContext(sc)
// this is used to implicitly convert an RDD to a DataFrame.
import sqlContext.implicits._

// Define the schema using a case class.
// Note: Case classes in Scala 2.10 can support only up to 22 fields. To work around this limit,
// you can use custom classes that implement the Product interface.
case class Person(name: String, age: Int)

// Create an RDD of Person objects and register it as a table.
val people = sc.textFile("examples/src/main/resources/people.txt").map(_.split(",")).map(p => Person(p(0), p(1).trim.toInt)).toDF()
people.registerTempTable("people")

// SQL statements can be run by using the sql methods provided by sqlContext.
val teenagers = sqlContext.sql("SELECT name, age FROM people WHERE age >= 13 AND age <= 19")

// The results of SQL queries are DataFrames and support all the normal RDD operations.
// The columns of a row in the result can be accessed by field index:
teenagers.map(t => "Name: " + t(0)).collect().foreach(println)

// or by field name:
teenagers.map(t => "Name: " + t.getAs[String]("name")).collect().foreach(println)

// row.getValuesMap[T] retrieves multiple columns at once into a Map[String, T]
teenagers.map(_.getValuesMap[Any](List("name", "age"))).collect().foreach(println)
// Map("name" -> "Justin", "age" -> 19)


+ Recent posts