Pandas의 DataFrame에 대한 기본 작업을 Jupyter Notebook에서 시도
이 기사의 내용은 다음 링크에 따라 준비한 Jupyter Notebook 환경에서 시도하고 있습니다.
Jupyter Notebook을 Docker를 사용하여 쉽게 설치하고 시작 (nbextensions, Scala도 지원) - Qiita
이 환경에서 브라우저에서 포트 8888에 액세스하여 Jupyter Notebook을 사용할 수 있습니다. 오른쪽 상단의 버튼 New > Python3을 따라 새로운 노트를 엽니 다.
DataFrame 개요
Pandas의 DataFrame은 행과 열이 있는 테이블 형식의 데이터 이미지입니다. 행에는 0부터 시작하는 행 번호를 붙일 수도 있습니다만, 문자열이라도 좋은 것 같습니다. 열에는 열 이름이 붙습니다.
DataFrame은 테이블 형식이지만 Series라는 열만 있는 개체도 있습니다.
DataFrame과 Series의 내용은 아래의 기사가 매우 참고가 되었습니다.
내 pandas.Series와 DataFrame의 이미지가 잘못되었습니다 - Qiita
파이썬 패키지 가져오기
import pandas as pd
CSV 파일에서 로드
# ヘッダーがある場合
df = pd.read_csv("data.csv")
# ヘッダー行が列名になる
# ヘッダーがない場合
df = pd.read_csv("data.csv", header=None)
# 0から始まる番号が列名になる
# ヘッダーがなく列名を指定したい場合
df = pd.read_csv("data.csv", names=["id", "target", "data1", "data2", "data3"])
이 기사의 이후에는 적절한 난수로 만든 CSV 파일
htps : // 기주 b. 코 m/스즈키-나ゔぃ/사 mpぇ-다타/bぉb/마s r/사 mpぇ-다타-1. CSV
를 사용하고 있습니다.
(GitHub는 CSV 파일도 성형하여 표시 해 주네요)
데이터 내용 확인
DataFrame의 객체는 Jupyter Notebook에서 내용을 쉽게 확인할 수 있습니다.
데이터의 일부만 보고 싶다면
# 先頭の5行
df.head()
# 先頭の3行
df.head(3)
# or
df[:3]
# 最後の5行
df.tail()
# 最後の3行
df.tail(3)
# 11行目から20行目だけを抜き出す
# (0から始まるインデックスでいうと10から19)
df[10:20]
# 11行目から最後までを抜き出す
# (0から始まるインデックスでいうと10から後ろ)
df[10:]
# 11行目のみを確認
# (0から始まるインデックスでいうと10)
df.loc[10]
# 特定の列のみを抜き出す
df[["target", "data1"]]
# 特定の列のみを抜き出す
# DataFrameでなくSeriesになる
df["data1"]
# df[["data1"]]とは異なる
# 特定の行範囲の特定の列のみを抜き出す
df[["target", "data1"]][10:20]
# or
df[10:20][["target", "data1"]]
일부 행만 추출해도 행에 대한 인덱스는 유지됩니다.
데이터 형식 확인
df.shape
# => (300, 5)
df.columns
# => Index(['id', 'target', 'data1', 'data2', 'data3'], dtype='object')
df.dtypes
# => id int64
# target int64
# data1 float64
# data2 float64
# data3 float64
# dtype: object
열에 연산
열에 대해 연산을 할 수 있습니다.
df["data1"]
는 Series 입니다만, df["data1"] / 100
와 같이 쓰면 Series 의 각 요소에 대해 / 100
열끼리의 연산도 할 수 있습니다.
df["data1"] + df["data2"]
행을 조건으로 추출
# df["data1"] >= 0 がTrueとなる行のみからなるDataFrameを生成
# 行のインデックスは維持されるので、とびとびの番号になる
df[df["data1"] >= 0]
# SQLみたいにクエリすることもできる
df.query('data1 >= 30 and target == 1')
# クエリの中に文字列を入れたい場合は "" で囲む
df.query('target == "1"')
중복을 삭제한 값 목록을 가져옵니다.
df["target"].unique()
# => array([3, 2, 1])
숫자 열에 대한 통계량 가져오기
df.describe()
정렬
다음은 data1
열에서 행을 정렬한 DataFrame을 반환합니다.
# data1列の昇順
df.sort_values("data1")
# data1列の降順
df.sort_values("data1", ascending=False)
# 複数の列で並び替え
df.sort_values(["target", "data1"], ascending=False)
제1소트를 target
내림차순, 제2소트를 data1
오름차순으로 하려면 어떻게 하면 좋을까?
열 추가
이하의 예에서는, 기존의 열에 연산을 실시한 새로운 값의 열을 우단에 추가한다.
df["data_sum"] = df["data1"] + df["data2"] + df["data3"]
이상.
Reference
이 문제에 관하여(Pandas의 DataFrame에 대한 기본 작업을 Jupyter Notebook에서 시도), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/suzuki-navi/items/6bd8377ca7974779a822
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import pandas as pd
CSV 파일에서 로드
# ヘッダーがある場合
df = pd.read_csv("data.csv")
# ヘッダー行が列名になる
# ヘッダーがない場合
df = pd.read_csv("data.csv", header=None)
# 0から始まる番号が列名になる
# ヘッダーがなく列名を指定したい場合
df = pd.read_csv("data.csv", names=["id", "target", "data1", "data2", "data3"])
이 기사의 이후에는 적절한 난수로 만든 CSV 파일
htps : // 기주 b. 코 m/스즈키-나ゔぃ/사 mpぇ-다타/bぉb/마s r/사 mpぇ-다타-1. CSV
를 사용하고 있습니다.
(GitHub는 CSV 파일도 성형하여 표시 해 주네요)
데이터 내용 확인
DataFrame의 객체는 Jupyter Notebook에서 내용을 쉽게 확인할 수 있습니다.
데이터의 일부만 보고 싶다면
# 先頭の5行
df.head()
# 先頭の3行
df.head(3)
# or
df[:3]
# 最後の5行
df.tail()
# 最後の3行
df.tail(3)
# 11行目から20行目だけを抜き出す
# (0から始まるインデックスでいうと10から19)
df[10:20]
# 11行目から最後までを抜き出す
# (0から始まるインデックスでいうと10から後ろ)
df[10:]
# 11行目のみを確認
# (0から始まるインデックスでいうと10)
df.loc[10]
# 特定の列のみを抜き出す
df[["target", "data1"]]
# 特定の列のみを抜き出す
# DataFrameでなくSeriesになる
df["data1"]
# df[["data1"]]とは異なる
# 特定の行範囲の特定の列のみを抜き出す
df[["target", "data1"]][10:20]
# or
df[10:20][["target", "data1"]]
일부 행만 추출해도 행에 대한 인덱스는 유지됩니다.
데이터 형식 확인
df.shape
# => (300, 5)
df.columns
# => Index(['id', 'target', 'data1', 'data2', 'data3'], dtype='object')
df.dtypes
# => id int64
# target int64
# data1 float64
# data2 float64
# data3 float64
# dtype: object
열에 연산
열에 대해 연산을 할 수 있습니다.
df["data1"]
는 Series 입니다만, df["data1"] / 100
와 같이 쓰면 Series 의 각 요소에 대해 / 100
열끼리의 연산도 할 수 있습니다.
df["data1"] + df["data2"]
행을 조건으로 추출
# df["data1"] >= 0 がTrueとなる行のみからなるDataFrameを生成
# 行のインデックスは維持されるので、とびとびの番号になる
df[df["data1"] >= 0]
# SQLみたいにクエリすることもできる
df.query('data1 >= 30 and target == 1')
# クエリの中に文字列を入れたい場合は "" で囲む
df.query('target == "1"')
중복을 삭제한 값 목록을 가져옵니다.
df["target"].unique()
# => array([3, 2, 1])
숫자 열에 대한 통계량 가져오기
df.describe()
정렬
다음은 data1
열에서 행을 정렬한 DataFrame을 반환합니다.
# data1列の昇順
df.sort_values("data1")
# data1列の降順
df.sort_values("data1", ascending=False)
# 複数の列で並び替え
df.sort_values(["target", "data1"], ascending=False)
제1소트를 target
내림차순, 제2소트를 data1
오름차순으로 하려면 어떻게 하면 좋을까?
열 추가
이하의 예에서는, 기존의 열에 연산을 실시한 새로운 값의 열을 우단에 추가한다.
df["data_sum"] = df["data1"] + df["data2"] + df["data3"]
이상.
Reference
이 문제에 관하여(Pandas의 DataFrame에 대한 기본 작업을 Jupyter Notebook에서 시도), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/suzuki-navi/items/6bd8377ca7974779a822
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
# ヘッダーがある場合
df = pd.read_csv("data.csv")
# ヘッダー行が列名になる
# ヘッダーがない場合
df = pd.read_csv("data.csv", header=None)
# 0から始まる番号が列名になる
# ヘッダーがなく列名を指定したい場合
df = pd.read_csv("data.csv", names=["id", "target", "data1", "data2", "data3"])
DataFrame의 객체는 Jupyter Notebook에서 내용을 쉽게 확인할 수 있습니다.
데이터의 일부만 보고 싶다면
# 先頭の5行
df.head()
# 先頭の3行
df.head(3)
# or
df[:3]
# 最後の5行
df.tail()
# 最後の3行
df.tail(3)
# 11行目から20行目だけを抜き出す
# (0から始まるインデックスでいうと10から19)
df[10:20]
# 11行目から最後までを抜き出す
# (0から始まるインデックスでいうと10から後ろ)
df[10:]
# 11行目のみを確認
# (0から始まるインデックスでいうと10)
df.loc[10]
# 特定の列のみを抜き出す
df[["target", "data1"]]
# 特定の列のみを抜き出す
# DataFrameでなくSeriesになる
df["data1"]
# df[["data1"]]とは異なる
# 特定の行範囲の特定の列のみを抜き出す
df[["target", "data1"]][10:20]
# or
df[10:20][["target", "data1"]]
일부 행만 추출해도 행에 대한 인덱스는 유지됩니다.
데이터 형식 확인
df.shape
# => (300, 5)
df.columns
# => Index(['id', 'target', 'data1', 'data2', 'data3'], dtype='object')
df.dtypes
# => id int64
# target int64
# data1 float64
# data2 float64
# data3 float64
# dtype: object
열에 연산
열에 대해 연산을 할 수 있습니다.
df["data1"]
는 Series 입니다만, df["data1"] / 100
와 같이 쓰면 Series 의 각 요소에 대해 / 100
열끼리의 연산도 할 수 있습니다.
df["data1"] + df["data2"]
행을 조건으로 추출
# df["data1"] >= 0 がTrueとなる行のみからなるDataFrameを生成
# 行のインデックスは維持されるので、とびとびの番号になる
df[df["data1"] >= 0]
# SQLみたいにクエリすることもできる
df.query('data1 >= 30 and target == 1')
# クエリの中に文字列を入れたい場合は "" で囲む
df.query('target == "1"')
중복을 삭제한 값 목록을 가져옵니다.
df["target"].unique()
# => array([3, 2, 1])
숫자 열에 대한 통계량 가져오기
df.describe()
정렬
다음은 data1
열에서 행을 정렬한 DataFrame을 반환합니다.
# data1列の昇順
df.sort_values("data1")
# data1列の降順
df.sort_values("data1", ascending=False)
# 複数の列で並び替え
df.sort_values(["target", "data1"], ascending=False)
제1소트를 target
내림차순, 제2소트를 data1
오름차순으로 하려면 어떻게 하면 좋을까?
열 추가
이하의 예에서는, 기존의 열에 연산을 실시한 새로운 값의 열을 우단에 추가한다.
df["data_sum"] = df["data1"] + df["data2"] + df["data3"]
이상.
Reference
이 문제에 관하여(Pandas의 DataFrame에 대한 기본 작업을 Jupyter Notebook에서 시도), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/suzuki-navi/items/6bd8377ca7974779a822
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
df.shape
# => (300, 5)
df.columns
# => Index(['id', 'target', 'data1', 'data2', 'data3'], dtype='object')
df.dtypes
# => id int64
# target int64
# data1 float64
# data2 float64
# data3 float64
# dtype: object
열에 대해 연산을 할 수 있습니다.
df["data1"]
는 Series 입니다만, df["data1"] / 100
와 같이 쓰면 Series 의 각 요소에 대해 / 100
열끼리의 연산도 할 수 있습니다.
df["data1"] + df["data2"]
행을 조건으로 추출
# df["data1"] >= 0 がTrueとなる行のみからなるDataFrameを生成
# 行のインデックスは維持されるので、とびとびの番号になる
df[df["data1"] >= 0]
# SQLみたいにクエリすることもできる
df.query('data1 >= 30 and target == 1')
# クエリの中に文字列を入れたい場合は "" で囲む
df.query('target == "1"')
중복을 삭제한 값 목록을 가져옵니다.
df["target"].unique()
# => array([3, 2, 1])
숫자 열에 대한 통계량 가져오기
df.describe()
정렬
다음은 data1
열에서 행을 정렬한 DataFrame을 반환합니다.
# data1列の昇順
df.sort_values("data1")
# data1列の降順
df.sort_values("data1", ascending=False)
# 複数の列で並び替え
df.sort_values(["target", "data1"], ascending=False)
제1소트를 target
내림차순, 제2소트를 data1
오름차순으로 하려면 어떻게 하면 좋을까?
열 추가
이하의 예에서는, 기존의 열에 연산을 실시한 새로운 값의 열을 우단에 추가한다.
df["data_sum"] = df["data1"] + df["data2"] + df["data3"]
이상.
Reference
이 문제에 관하여(Pandas의 DataFrame에 대한 기본 작업을 Jupyter Notebook에서 시도), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/suzuki-navi/items/6bd8377ca7974779a822
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
# df["data1"] >= 0 がTrueとなる行のみからなるDataFrameを生成
# 行のインデックスは維持されるので、とびとびの番号になる
df[df["data1"] >= 0]
# SQLみたいにクエリすることもできる
df.query('data1 >= 30 and target == 1')
# クエリの中に文字列を入れたい場合は "" で囲む
df.query('target == "1"')
df["target"].unique()
# => array([3, 2, 1])
숫자 열에 대한 통계량 가져오기
df.describe()
정렬
다음은 data1
열에서 행을 정렬한 DataFrame을 반환합니다.
# data1列の昇順
df.sort_values("data1")
# data1列の降順
df.sort_values("data1", ascending=False)
# 複数の列で並び替え
df.sort_values(["target", "data1"], ascending=False)
제1소트를 target
내림차순, 제2소트를 data1
오름차순으로 하려면 어떻게 하면 좋을까?
열 추가
이하의 예에서는, 기존의 열에 연산을 실시한 새로운 값의 열을 우단에 추가한다.
df["data_sum"] = df["data1"] + df["data2"] + df["data3"]
이상.
Reference
이 문제에 관하여(Pandas의 DataFrame에 대한 기본 작업을 Jupyter Notebook에서 시도), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/suzuki-navi/items/6bd8377ca7974779a822
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
df.describe()
다음은
data1
열에서 행을 정렬한 DataFrame을 반환합니다.# data1列の昇順
df.sort_values("data1")
# data1列の降順
df.sort_values("data1", ascending=False)
# 複数の列で並び替え
df.sort_values(["target", "data1"], ascending=False)
제1소트를
target
내림차순, 제2소트를 data1
오름차순으로 하려면 어떻게 하면 좋을까?열 추가
이하의 예에서는, 기존의 열에 연산을 실시한 새로운 값의 열을 우단에 추가한다.
df["data_sum"] = df["data1"] + df["data2"] + df["data3"]
이상.
Reference
이 문제에 관하여(Pandas의 DataFrame에 대한 기본 작업을 Jupyter Notebook에서 시도), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/suzuki-navi/items/6bd8377ca7974779a822
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
df["data_sum"] = df["data1"] + df["data2"] + df["data3"]
Reference
이 문제에 관하여(Pandas의 DataFrame에 대한 기본 작업을 Jupyter Notebook에서 시도), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/suzuki-navi/items/6bd8377ca7974779a822텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)