import streamlit as st
import pandas as pd

def main():
    df = pd.read_csv('data2/iris.csv')

    st.dataframe(df)

    species = df['species'].unique()

    st.text('아이리스 꽃은 ' + species + '으로 되어있다.')

    st.dataframe(df.head())
    st.write(df.head())

if __name__ == '__main__':
    main()

'streamlit' 카테고리의 다른 글

streamlit 이미지, 동영상 처리  (0) 2022.05.20
streamlit 버튼, 박스  (0) 2022.05.20
streamlit 제목, 문구  (0) 2022.05.20
streamlit visual studio 셋팅 방법  (0) 2022.05.20
streamlit 설치 방법  (0) 2022.05.20

데이터를 import 후 pivot_table함수로 collaborative filtering format으로 변경한다.

 

최소 80개이상 데이터가 있는 것만 상관계수를 뽑기 위해서 min_periods 파라미터에 80을 대입한다.

myRatings를 통해 추천을 받으려고한다. Movie Name column에서 nan값을 dropna하고 내림차순 정렬후 데이터프레임으로 만든 뒤 별점을 곱해서 weight column을 만든다. similar_movies_list에 정리하면 다음과 같다.

데이터를 import 했다. Date column을 datetime64로 바꾸고 인덱스로 설정해주면 resample함수를 사용할 수 있다.

resample 'Y'는 년도다. 년도로 리샘플한 후 , 각 년도별 몇개의 범죄 데이터를 가지고 있는지 확인한다.

월별 범죄 발생 건수를 확인해보자.

데이터 타입이 datetime64인 Series나 column에 dt속성을 통해 여러 속성들을 사용가능하다,

위 사진은  dayofweek 0 ~ 6 으로 월요일부터 일요일을 나타내고 day는 몇 일 인지 나온다.

weekday를 통해서 0 ~ 6 으로 요일을 나타낼 수도 있다.

데이터프레임의 날짜문자열 컬럼을, datetime64로 변경할 수 있다.

Date column에는 날짜문자열이 들어 있었는데 이것을 pd.to_datetime함수를 통해 datetime64로 변경한다.

이때 format에 문자열 형식을 적어 줘야한다. strftime section 이 링크를 참고해서 바꾸면 된다.

csv 파일이 comma로 제대로 분리 되어있지 않으면 read_csv에서 에러가 발생할 수 있다.

이 때 error_bad_lines = False 파라미터를 사용하면 위 사진처럼 문제가 있는 line을 건너뛰고 읽어온다.

df = pd.DataFrame({'Animal': ['Falcon', 'Falcon',
                              'Parrot', 'Parrot'],
                   'Max Speed': [380., 370., 24., 26.]})
df
   Animal  Max Speed
0  Falcon      380.0
1  Falcon      370.0
2  Parrot       24.0
3  Parrot       26.0

DataFrame.groupby(by=None, axis=0, level=None, as_index=True, sort=True, group_keys=True, squeeze=NoDefault.no_default, observed=False, dropna=True) 에서 by에 원하는 column으로 묶어서 함수를 적용 시킬 수 있다.

df.groupby(['Animal']).mean()
       Max Speed
Animal
Falcon      375.0
Parrot       25.0

max(), min(), sum() 등의 함수가 있다.

날짜가 들어간 문자열에 pd.to_datetime(문자열)을 통해 DatetimeIndex를 만들 수 있다.

pd.to_timedelta를 통해 시간이나 날짜단위를 더할 수 있다.

timedelta

pd.date_range는 시작일과 종료일을 셋팅하면, 알아서 날짜를 채우도록 하는 함수

pd.timedelta_range 반복회수와 시간을 셋팅하면 배열을 반환한다.

시리즈는 데이터프레임의 하위 자료형으로, 1개의 열이 시리즈이고 이 시리즈가 다수 모여 데이터프레임을 형성한다고 이해하면 쉽다.

import pandas as pd
index = ['eggs', 'apples', 'milk', 'bread']
data = [30, 6, 'Yes', 'No']
groceries = pd.Series(data = data, index = index)
groceries
eggs       30
apples      6
milk      Yes
bread      No
dtype: object

시리즈 변수에 []기호 안에 숫자 인덱스나, 정해놓은 인덱스를 넣으면 되고, 두개이상 쓸때는 배열로 넣는다.

groceries[0]
groceries[['eggs','bread']]
30

eggs     30
bread    No
dtype: object

다음은 데이터프레임을 생성해보겠다.

import pandas as pd

# We create a dictionary of Pandas Series 
items = {'Bob' : pd.Series(data = [245, 25, 55], index = ['bike', 'pants', 'watch']),
         'Alice' : pd.Series(data = [40, 110, 500, 45], index = ['book', 'glasses', 'bike', 'pants'])}
df = pd.DataFrame(data = items)
df

DataFrame

마찬가지로 데이터 억세스는 []로 한다.

column

두번째는 행과 열의 정보로, 데이터를 가져오는 방법 사람용인, 인덱스와 컬럼명으로 데이터를 억세스(가져오는) 방법이다. loc[인덱스, 컬럼명]

loc

세번째는 컴퓨터가 자동으로 매기는 인덱스로, 행과 열을 가져오는 방법이다.

엑셀에서 사용하는 피벗테이블과 같은 기능을 처리하는 방법을 알아보자. 아래는 예제에 사용할 데이터다.

데이터
pivot_table

pandas.pivot_table(data, values=None, index=None, aggfunc='mean')

data: DataFrame

values: 열 자리에 들어갈 column

index: 인덱스에 들어갈 column

aggfunc: 적용할 함수

+ Recent posts