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"]})
Reference
이 문제에 관하여(Pandas 기초), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/sicentistengineer01/items/5e4e55cd577818341f1b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)