728x90
반응형

 

cmd 창에 들어가서 아래의 코드를 입력하면 자동으로 설치가 된다.

 

pip install requests

 

import requests

url = 'https://www.naver.com'
html = requests.get(url)

print(html.text)

 

파이참에 위 코드를 실행하면 console창에 url에 입력한 사이트를 html 형식으로 변환해준다.

 

Cisual Studio Code에 띄어 보았다.

 

 

 

728x90
반응형
728x90
반응형

 

* 본 포스팅은 주피터 노트북을 사용하였다.

 

person ={'이름':['홍길동','홍말자','김개똥','홍길동','김개똥'],
         '나이':[26, 22 ,12,12,22],
         '몸무게':[87,11,13,17,19],
         'age':[12,23,34,23,17], 
         'sex':['M','F','M','F','M']
        }
person

 

생성된 딕셔너리에 '이름' 키값을 가져와 보자

 

 

person의 나이의 총합 구하기

sum=0
for i in person['나이']:
    sum +=i
print(sum)

 

 

map을 이용하여 2차원 리스트 값 더하기

 

생성된 2차원 리스트에서 나이, 몸무게, age 끼리 더한 결과를 도출해 보자

def myF(i):
    sum=0
    for j in i:
        sum+=j
    return sum
list(map(myF,arr))

728x90
반응형
728x90
반응형

* 본 포스팅은 주피터 노트북을 이용하였다.

 

딕셔너리를 생성한다.

 

나이 컬럼을 수정한다.

 

없는 키값을 추가해 보자.

 

 

딕셔너리를 다시 생성한다!

데이터 프레임으로 변환한다.

 

describe() 메서드는 다양한 통계량을 요약해준다.

 

성별 기준으로 나이의 총합 구하기

group1 = df['나이'].groupby(df['sex'])

sum()은 합계, mean()은 평균을 뜻한다.

 

위 방법과 다른 표현으로도 나타낼 수 있다.

df['나이'].groupby(df['sex']).agg([
                                    ('총합','sum'),
                                    ('최대','max'),
                                    ('최소','min'),
                                    ('사용자 정의',myFuncAgg),
                                     ('평균','mean')
                                    ])

 

이름으로 그룹화하고 몸무게의 통계치(집계함수/aggregation)을 출력하기

person ={'이름':['홍길동','홍말자','김개똥','홍길동','김개똥'],
         '나이':[26, 22 ,12,12,22],
         '몸무게':[87,11,13,17,19],
         'age':[12,23,34,23,17], 
         'sex':['M','F','M','F','M']
        }
person
df=pd.DataFrame(person)
print(df)

df['몸무게'].groupby(df['이름']).agg([
                                    ('총합','sum'),
                                    ('최대','max'),
                                    ('최소','min'),
                                     ('평균','mean')
                                    ])

 

group으로 그룹화하고 a의 통계치(집계함수/aggregation) 출력하기

df1 = pd.DataFrame(np.random.rand(4,4), columns=list('abcd'))
df1['group'] = [0,0,1,1]
print(df1)

df1.groupby('group').agg({'a':['sum','max'],
                         'b':'mean',
                          'c':'sum',
                          'd':lambda x:x.max()-x.min()
                         })

 

728x90
반응형
728x90
반응형

주피터 노트북을 기반으로 진행하였다.

 

데이터 가져오는 것을 하기 위해 MySQL에 가서 기존에 만들어 놓았던 아무 파일을 불러온 뒤

 

select * from (테이블명);

빨간 동그라미 친 곳을 눌러 원하는 경로에 MySQL 데이터를 csv 형식으로 저장한다!

 

 

나는 board.csv로 저장하였고 파일이 잘 저장 되었는지 확인한다.

 

이 파일을 python에서 열어보자

import pandas as pd
result=pd.read_csv('C:\\pythonprj\\board.csv') #한글있으면 ,encoding='euc-kr' 추가!
result

 

이것으로 Python에서 MySQL데이터를 가져오는 것은 끝났다. 

 

이 데이터들을 처리해 볼 것이다.

 

1) slice

result['title'].str.slice(0,2)

 

2) 데이터 편집

result['content']=result['content'].str.slice(0,3) # 데이터 편집
result.to_csv('result.csv') #자른거 데이터 붙이기
print(result)

 

728x90
반응형
728x90
반응형

pandas에서 csv 파일을 생성하기 전에 numpy와 matplotlib 예제 하나씩 소개하고 시작할 것이다.

 

더보기

pip install numpy -> 수치 해석 도구 , numpy는 c언어로 만들어진 수치해석 tool

pip install pandas -> 엑셀처럼 데이터 다루기, pandas는 numpy로 만들어진 tool

pip install matplotlib -> 도표 그리기

 

1. numpy

import numpy as np

a1=[[1,2,3],[4,5,6]]
b1=[[11,12,13],[14,15,16]]

na1 = np.array(a1)
nb1 = np.array(b1)
result= na1+nb1

print(result)
print(result.T)

2. matplotlib 

import matplotlib.pyplot as plt
import numpy as np

# Data for plotting
t = np.arange(0.0, 2.0, 0.01)
s = 1 + np.sin(2 * np.pi * t)

fig, ax = plt.subplots()
ax.plot(t, s)

ax.set(xlabel='time (s)', ylabel='voltage (mV)',
       title='About as simple as it gets, folks')
ax.grid()

fig.savefig("test.png")
plt.show()

 

3. pandas

import pandas as pd
d = {'col1':[1,2], 'col2':[3,4]}
df = pd.DataFrame(data=d)
print(df)

생성된 표를 엑셀 파일로 만들기

df.to_csv('1.csv') #엑셀 파일로 만들어줌 ,한글깨짐, 자동으로 사용자계정에저장
df.to_csv('C:\\pythonprj\\1.csv',encoding='euc-kr') #경로지정과 한글개짐 방지

위 코드 중 하나를 적용하면 (한글문서가 있는 경우 아래 코드를 추천) 지정경로에 만들어진 엑셀 파일을 확인할 수 있따.

 

여기까지 해서 pandas로 csv파일을 생성하는 것까지 했고 다음 내용은 MySQL 데이터 가져오는것을 할 것이다!

728x90
반응형

+ Recent posts