EDA/Webスクロール2(Pandasベース)
18659 ワード
pandas
pythonはRと同じ強力なデータ処理能力のモジュールを提供し、単一プロセスで最高効率のステロイドはEXCELに合致する......異なるバージョンの構文またはオプションを確認する必要があります
from MODULE import function:MODULEに含まれる1つの関数のみを使用します!
ファイル名、位置を入力する時、適当な場所でTABボタンを押して、自動的に機能を完成して一時停止します!
pandas read excelドキュメントに示すように、詳細ファイルを検索してください.
변수명 = pd.read_excel(
"../data/어쩌구저쩌구",header=2,usecols="B, C, D, "
)
Series:Pandasデータ型の基本構成
列名の変更:変数名.rename(columns={変数名.columns[置換インデックス]:[置換名]},inplace=True)/一行に書くと読みにくく、その毒性を考慮してください!
Data.rename(columns={Data.columns[0] : "바꿀이름",
Data.columns[1] : '바꿀이름2'},
inplace=True)
x = pd.Series([1,3,5, np.nan])
dates = pd.date_range("20210916", periods=6) #periods : n일 날짜생성
output : DatetimeIndex(['2021-09-16', '2021-09-17', '2021-09-18', '2021-09-19',
'2021-09-20', '2021-09-21'],
dtype='datetime64[ns]', freq='D')
df = pd.DataFrame(np.random.randn(6,4), index=dates, columns=["A","B","C","D"])
#6 by 4 매트릭스 생성
# 컬럼추가, 기존컬럼이 없으면 추가하고 있으면 수정
df["이름"] = ["내용","내용1","내용2"]
df.loc[:,["A","B"]]
# pandas의 보편적인 slice 옵션
# 위 처럼하면 모든행, "A","B"열을 출력
# 일반적으로 n:m이면 n부터 m-1 까지만 index나 이름으로 하는경우 끝도 포함
.iloc[rowインデックス,colインデックス]は、情報、ex)dfをクエリーできます.iloc[[1,2,4],[0,2]]
.head(見たい数)コマンド:上位5桁の情報を表示し、Rと同じ、tail()も同様
.info():DataFrameの基本情報をチェックし、通常のcolのサイズデータの形式をチェックする
.columnsを使用してcolumnをクエリーできます.
.describe():DataFrameの統計基本情報を表示する
.corr():相関係数を表示
.sort valuese(by=「標準の列になる」、昇順=False)/列降順を選択し、昇順にソート
重複する.unique(),ex)x.unique()の削除
Pandas Slice under condition
通常フィルタはdf[condition]を使用する
df[df>0]、df["A">0]のように濾過することができる
# A 컬럼에서 0보다 큰 숫자만 선택
df["A"]>0
output -> True,False 마냥 뜸
# 필터링된거 출력
df[df["A"]>0]
df[df>0] # NaN까지 출력
df[“colum]”.isin([要素]):特定の要素があるかどうかを確認します
#예시
df["E"].isin(["two","four"])
output -> True,False 마냥 뜸
#특정 요소가 있는 행만 선택
df[df["E"].isin(["two","four"])]
列の削除
del削除したいカラムex)deldf["E"]
df.drop(消去する行または列、axis=)、ex)df.drop([D],axis=1);軸を設定しない場合、デフォルトはrow
offset index:[n:m]:nからm-1まで、インデックスまたはカラムの名前のスライスを使用すると、エンドポイントが含まれます.
Pandas Indexの指定
はindexを再指定するコマンド語です.
.set index(「標準」,inplace=True)
#예시
data.set_index("구별",inplace=True)
ユニークなデータをインデックスとして、グラフを描くのに便利です!データのマージ
concat()、merge()、join()の3つの方法でマージできます.
merge : .merge(data 1,data 2,how="標準データ",on="標準")
ex) pd.merge(左、右、how=「左」、on=「key」)、左は生きていて、左と右だけが重なっています
how=「outer」を2つ組み合わせて、破損を回避します.
how=innerを使用する場合は、2つのデータの共通分母//innerのみをマージします.
Analysis Seoul CCTV
import numpy as np
import pandas as pd
CCTV_seoul = pd.read_csv(
"주소",encoding="utf-8"
)
CCTV_seoul.rename(columns={CCTV_seoul.columns[0] : "구별"}, inplace=True)
pop_Seoul = pd.read_excel("C:/Users/PH/data/01. Seoul_Population.xls")
pop_Seoul = pd.read_excel("C:/Users/PH/data/01. Seoul_Population.xls",header=2,usecols="B, D, G, J, N")
pop_Seoul.rename(columns={pop_Seoul.columns[0]:"구별",pop_Seoul.columns[1]:"인구수",pop_Seoul.columns[2]:"한국인",pop_Seoul.columns[3]:"외국인",pop_Seoul.columns[4]:"고령자"},inplace=True)
pop_Seoul['외국인비율'] = pop_Seoul["외국인"] / pop_Seoul["인구수"] * 100
CCTV_seoul["최근증가율"] = (CCTV_seoul["2016년"] + CCTV_seoul["2015년"]) / CCTV_seoul["2013년도 이전"] * 100
data_result = pd.merge(CCTV_seoul, pop_Seoul, on="구별")
data_result["CCTV 비율"] = data_result["소계"] / data_result["인구수"] * 100
del data_result["2014년"]
del data_result["2015년"]
del data_result["2016년"]
del data_result["2013년도 이전"]
data_result.set_index("구별", inplace=True)
data_result.head()
Reference
この問題について(EDA/Webスクロール2(Pandasベース)), 我々は、より多くの情報をここで見つけました https://velog.io/@varieyty_/EDA웹크롤링2テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol