データの選択と変更
データフレーム、シリーズデータの検索方法
.loc(locatonの略):明示的なインデックス を参照してください. .iloc:デフォルトのインデックスを参照してください.Pythonスタイルの整数インデックスを参照します.
選択列:列名を使用してDataFrameからデータ を選択
データフレーム
シリーズの値セットがデータフレームになります!条件の使用:データフレーム内のカラムだけでなく、値も知っている場合は、masking演算またはquery関数を使用して条件を使用できます. 列の追加:Seriesはnumpy arrayのように演算子 を使用することもできます.データの追加/変更:リストまたはディックシーケンス に追加
データ追加結果
データ修正結果 NaN列の追加:NaN値で初期化された新しい列 を追加します.
データ修正結果
削除列:DataFrameから列を削除すると元の値 が変更されます.「練習3」の条件を満たす値を抽出
データの選択
country.loc['china'] # 인덱싱
country.loc['japan':'korea', :'population'] # 슬라이싱
country.iloc[0] # 인덱싱
country.iloc[1:3, :2] # 슬라이싱
インデックス結果には1.409250 e+09と表記され、eは10のn乗(+後数字)を表す.これは10の9勝です.選択
country
country['gdp'] # 시리즈
country[['gdp']] # 데이터프레임
シリーズデータフレーム
シリーズの値セットがデータフレームになります!
country[country['population'] < 10000] # masking 연산 활용. population이라는 column 값 정확히 알 때 사용.
country.query("population > 100000") # query 함수 활용
データの変更
gdp_per_capita = country['gdp'] / country['population'] # 1인당 GDP
country['gdp per capita'] = gdp_per_capita # 아래 사진처럼 추가됨.
df = pd.DataFrame(columns = ['이름','나이','주소']) # 데이터프레임 생성
df.loc[0] = ['길동', '26', '서울'] # 리스트로 데이터 추가
df.loc[1] = {'이름':'철수', '나이':'25', '주소':'인천'} # 딕셔너리로 데이터 추가
df.loc[1, '이름'] = '영희' # 명시적 인덱스 활용하여 데이터 수정
データフレームの作成データ追加結果
データ修正結果
df['전화번호'] = np.nan # 새로운 컬럼 추가 후 초기화|nan = Not a Number. 즉, 숫자가 아니다. 이것은 비어있는 데이터다라는 뜻.
df.loc[0, '전화번호'] = '01012341234' # 명시적 인덱스 활용하여 데이터 수정
列を追加データ修正結果
削除
df.drop('전화번호', axis = 1, inplace = True) # 컬럼 삭제
# axis = 1 : 열 방향 / axis = 0 : 행 방향
# inplace = True : 원본 변경. 요거 사용할 땐 꼭 원본을 따로 저장한 후 사용하기. / inplace = False : 원본 변경 X
「練習3」の条件を満たす値を抽出
質問する
与えられた値の下で、
1.マスク演算によりA値が0.5未満、B値が0.3以上の値を出力する.
2.query関数を使用して上記条件の値を出力します.import numpy as np
import pandas as pd
print("Masking & query")
df = pd.DataFrame(np.random.rand(5, 2), columns=["A", "B"])
print(df, "\n")
# 데이터 프레임에서 A컬럼값이 0.5보다 작고 B컬럼 값이 0.3보다 큰값들을 구해봅시다.
code
# 마스킹 연산을 활용하여 출력해보세요!
print(df[(df['A']<0.5)&(df['B']>0.3)])
# query 함수를 활용하여 출력해보세요!
print(df.query("A < 0.5" and "B > 0.3"))
実行結果
Masking & query
A B
0 0.385740 0.313716
1 0.346635 0.461108
2 0.565224 0.937440
3 0.878549 0.139105
4 0.662327 0.309578
A B
0 0.385740 0.313716
1 0.346635 0.461108
A B
0 0.385740 0.313716
1 0.346635 0.461108
[練習4]新しい列を追加
質問する
국가별 GDP
シリーズデータと국가별 인구
シリーズデータからなるcountry
データフレーム.1人当たりGDPを反映するために、gdp per capita
をデータフレームに追加しましょう.
1.2つのcountry
列を使用して新しい列を作成します.1人当たりGDPを表すgdp per capita
という新しいコラムをデータフレームに追加した.
1人当たりのGDPはgdp
とpopulation
に分けられる.
2.完了したデータフレームを印刷!import numpy as np
import pandas as pd
GDPと人口のシリーズ値を含むデータフレームを作成します。
population = pd.Series({'korea': 5180,'japan': 12718,'china': 141500,'usa': 32676})
gdp = pd.Series({'korea': 169320000,'japan': 516700000,'china': 1409250000,'usa': 2041280000})
print("Country DataFrame")
country = pd.DataFrame({"population": population,"gdp": gdp})
print(country)## code
```python
# 데이터프레임에 gdp per capita 칼럼을 추가하고 출력합니다.
gdp_per_capita = country['gdp'] / country['population']
country['gdp per capita'] = gdp_per_capita
print(country)
実行結果
Country DataFrame
population gdp
korea 5180 169320000
japan 12718 516700000
china 141500 1409250000
usa 32676 2041280000
population gdp gdp per capita
korea 5180 169320000 32687.258687
japan 12718 516700000 40627.457147
china 141500 1409250000 9959.363958
usa 32676 2041280000 62470.314604
Reference
この問題について(データの選択と変更), 我々は、より多くの情報をここで見つけました
https://velog.io/@namung/데이터-선택-및-변경하기
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
import numpy as np
import pandas as pd
print("Masking & query")
df = pd.DataFrame(np.random.rand(5, 2), columns=["A", "B"])
print(df, "\n")
# 데이터 프레임에서 A컬럼값이 0.5보다 작고 B컬럼 값이 0.3보다 큰값들을 구해봅시다.
# 마스킹 연산을 활용하여 출력해보세요!
print(df[(df['A']<0.5)&(df['B']>0.3)])
# query 함수를 활용하여 출력해보세요!
print(df.query("A < 0.5" and "B > 0.3"))
Masking & query
A B
0 0.385740 0.313716
1 0.346635 0.461108
2 0.565224 0.937440
3 0.878549 0.139105
4 0.662327 0.309578
A B
0 0.385740 0.313716
1 0.346635 0.461108
A B
0 0.385740 0.313716
1 0.346635 0.461108
質問する
국가별 GDP
シリーズデータと국가별 인구
シリーズデータからなるcountry
データフレーム.1人当たりGDPを反映するために、gdp per capita
をデータフレームに追加しましょう.1.2つの
country
列を使用して新しい列を作成します.1人当たりGDPを表すgdp per capita
という新しいコラムをデータフレームに追加した.1人当たりのGDPは
gdp
とpopulation
に分けられる.2.完了したデータフレームを印刷!
import numpy as np
import pandas as pd
GDPと人口のシリーズ値を含むデータフレームを作成します。
population = pd.Series({'korea': 5180,'japan': 12718,'china': 141500,'usa': 32676})
gdp = pd.Series({'korea': 169320000,'japan': 516700000,'china': 1409250000,'usa': 2041280000})
print("Country DataFrame")
country = pd.DataFrame({"population": population,"gdp": gdp})
print(country)## code
```python
# 데이터프레임에 gdp per capita 칼럼을 추가하고 출력합니다.
gdp_per_capita = country['gdp'] / country['population']
country['gdp per capita'] = gdp_per_capita
print(country)
実行結果
Country DataFrame
population gdp
korea 5180 169320000
japan 12718 516700000
china 141500 1409250000
usa 32676 2041280000
population gdp gdp per capita
korea 5180 169320000 32687.258687
japan 12718 516700000 40627.457147
china 141500 1409250000 9959.363958
usa 32676 2041280000 62470.314604
Reference
この問題について(データの選択と変更), 我々は、より多くの情報をここで見つけました
https://velog.io/@namung/데이터-선택-및-변경하기
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
## code
```python
# 데이터프레임에 gdp per capita 칼럼을 추가하고 출력합니다.
gdp_per_capita = country['gdp'] / country['population']
country['gdp per capita'] = gdp_per_capita
print(country)
Country DataFrame
population gdp
korea 5180 169320000
japan 12718 516700000
china 141500 1409250000
usa 32676 2041280000
population gdp gdp per capita
korea 5180 169320000 32687.258687
japan 12718 516700000 40627.457147
china 141500 1409250000 9959.363958
usa 32676 2041280000 62470.314604
Reference
この問題について(データの選択と変更), 我々は、より多くの情報をここで見つけました https://velog.io/@namung/데이터-선택-및-변경하기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol