Pandas 기초

4556 단어 pandas파이썬
Pandas 기초 정리

Series 및 DataFrame 정보

시리즈



Series란? 1차원 값 목록



dict형의 오브젝트를 Series에 넣으면 key를 index로서 표현합니다.
data = {
    "Name":"Jhon",
    "Sex":"male",
    "AGe":22
}
pd.Series(data)
>
Name    Jhon
Sex     male
AGe       22
dtype: object

Numpy array에서 Series 만들기
array = np.array([22,31,42,23])
age_series = pd.Series(array)
age_series

array에 index를 지정하고 index로 호출
``
array = np.array(['John','male',22])
john_series = pd.Series(array,index = ['Name','Sex','Age'])
john_seiies["Name"]



john_seiries

이름 존
Sex male
Age 22
dtype: object
``

원래 Numpy array를 가져옵니다.
age_series.values.values 
>array([22, 31, 42, 23])

DataFrame



이미지로서 행렬 그 자체를 테이블로서 취급하는 (행 Series 열 Series)를 조작해 조합한 것이 DataFrame 같은 느낌인가.



위의 그림에서는 열 Series 만 있지만,
행의 시리즈도 처리합니다.

Numpy array에서 작성
ndarray = np.arange(10).reshape(2,5)
ndarray
>
array([[0, 1, 2, 3, 4],
       [5, 6, 7, 8, 9]])

pd.DataFrame(ndarray,index = ["index1",'index2'] ,columns = ['a','b','c','d','e' ])
>
         | a | b | c | d | e |
| index1 | 0 | 1 | 2 | 3 | 4 |
| index2 | 5 | 6 | 7 | 8 | 9 |

기본적인 흐름
1 read_csv로로드
2 데이터의 기초 정보를 분석
df = pd.read_csv("dataset/tmdb_5000_movies.csv")
# len()でデータ数確認
len(df) 

목록을 생략하지 않고 표시하고 싶을 때
# colomuの制限をなくす
pd.set_option('display.max_columns',None)

#row(1つ1つのデータ)の制限をなくす  (※重たくなるので注意)
pd.set_option('display.max_rows',None)
df.describe()
type(df)  #describe自体もDataFrameとして扱える

DataFrame 작업



Series로 돌아온다
df[" カラム名  "] ○ 推奨
df.カラム名     ▲ 非推奨

DataFrame으로 돌아온다
df[["revenue"]]

#columを複数選択も可能
df[["revenue","original_title","budget"]]
#特定の行のindexを指定し、取り出す
df.iloc[10:13]

# 特定の行のindexを指定し、指定したカラムを取り出す
df.iloc[10:13]["original_title"]

행 및 열 삭제
drop() # 元のDataFrameは変更されない
inplace = True로 원래 DataFrame 변경

<特定の行をまとめて削除 axis  = 0  (※デフォルトで指定済)>
df.drop('id', (axis = 0) ,(inplace = True))  

<指定した列を削除  axis = 1>
df.drop('id', axis = 1,(inplace = True))  

df = df.drop(5) # inplaceよりメジャーな、元のデータを更新する手法!  同じ変数を使いまわしていく 

dropna() 欠損値を全削除

np.isnan() nan(欠損値) があるか判定 

fillna() 欠損値を埋める
>fillna(df["runtime"].mean())

필터


フィルターのかけ方
# 例)日本の映画のみ指定したい
j_movie = df[df['original_language'] == 'ja'] #この書き方が基本よく使う


()&()や()|()で複数の条件を入れる
# 例)日本の映画で評価が8以上の作品だけ指定したい。
j_movie = df[(df['original_language'] == 'ja') & (df["vote_average"] >= 8 ) ] 

df[ (df['budget'] == 0 ) | (df['revenue'] == 0 ) ]
→フィルタ :「予算もしくは売り上げが0」


df[ ~ ((df['budget'] == 0 ) | (df['revenue'] == 0 )) ]
フィルタ  :「予算もしくは売り上げが0」ではない(NOT演算〜)

merge() 사용법



인수 how 옵션
df1 = pd.DataFrame({'key':["k0","k1","k2"],
                  'A':["a0","a1","a2"],
                  'B':["b0","b1","b2"]})

df2 = pd.DataFrame({'key':["k0","k1","k2"],
                  'C':["c0","c1","c2"],
                  'D':["d0","d1","d2"]})



좋은 웹페이지 즐겨찾기