지방이의 Data Science Lab

[python] one row to multiple rows 본문

Data Analysis/Python

[python] one row to multiple rows

[지현] 2020. 2. 7. 15:18

* 원하는 list에서 무언가 지우고 싶을때 del쓰면 된다. (추가하고 싶을땐 append)

 

* 데이터를 좀 정리해서 무거운 데이터를 가볍게 가지고 싶을때 사용하면 된다. 

즉, 아래와 같이 생긴 데이터를 

회사명 2014년_신용등급  2015년_신용등급  2015년_신용등급
삼성 AAA AAA AAA

 

  ...  

 

회사명 년도 등급
삼성 2014 AAA
삼성 2015 AAA
삼성 2016 AAA

 이렇게 만들어 주는 과정이다. 

 

과정에서 들어간 핵심코드는 ravel 'C'olumn별로 쓰여있는 등급을 한 열 안에 몰아넣는 것.

나머지 회사와 년도는 늘어난 갯수만큼 맟줘준것임.

colnames는 한줄로 늘리고 싶은 열 이름들이 들어간 값, 

company는 나머지 이름들.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
= pd.read_csv("../data/y.csv",encoding ='cp949', skiprows = 6)
colnames = [x for x in y.columns]
company = colnames[0:3]
del colnames[0:3]
 
credit = pd.Series(y
          .set_index(company)[colnames]
          .values.ravel('C'))
credit = pd.DataFrame({'KIS_credit':credit})
company = y.loc[y.index.repeat(5)].reset_index(drop=True)[['KIS''Stock''Name']]
 
= pd.concat([company, credit], axis = 1)
 
year = cycle([20142015201620172018])
y['year'= [next(year) for count in range(y.shape[0])]
 
= y.dropna(thresh=5)
= y.groupby(['Name']).filter(lambda x:x.shape[0> 4)
y
 

 

 

Comments