반응형
Pandas의 DataFrame을 보면 type(pandas_DF)형을 확인하면 <pandas.core.frame.DataFrame'>을 확인됩니다. 하지만 일부 필드로 가져올 때는 <pandas.core.series.Series'>으로 변경이 됩니다.
행 단위로 추출하는 방법으로 loc, iloc속성을 사용해야 합니다.
속성 | 설명 |
loc | 인덱스를 기준으로 행 데이터 추출 |
iloc | 행 번호를 기준으로 행 데이터 추출 |
import pandas as pd
pandas_DF = pd.read_csv(r'C:\Users\HANA\PycharmProjects\HANATOUR\Pandas\doit_pandas-master\data\gapminder.tsv', sep='\t')
print("\n-- type(pandas_DF)\n", type(pandas_DF))
print("\n-- pandas_DF.columns\n", pandas_DF.columns)
print("\n-- pandas_DF.shape\n", type(pandas_DF.shape))
print("\n-- pandas_DF.shape\n", pandas_DF.shape)
country_df = pandas_DF['country']
print("\n-- type(country_df)\n", type(country_df))
print("\n-- country_df.head()\n", country_df.head())
print("\n-- country_df.tail()\n", country_df.tail())
subset = pandas_DF[['country','continent','year']]
print("\n-- type(subset)\n", type(subset))
print("\n-- subset.head()\n", subset.head())
print("\n-- subset.tail()\n", subset.tail())
print("\n-- pandas_DF.loc[0]\n", pandas_DF.loc[0])
print("\n-- pandas_DF.loc[99]\n", pandas_DF.loc[99])
number_of_rows = pandas_DF.shape[0]
last_row_index = number_of_rows - 1
print("\n-- pandas_DF.loc[last_row_index]\n", pandas_DF.loc[last_row_index])
print("\n-- pandas_DF.tail(1)\n", pandas_DF.tail(1))
print("\n-- pandas_DF.iloc[0]\n", pandas_DF.iloc[0])
print("\n-- pandas_DF.iloc[99]\n", pandas_DF.iloc[99])
print("\n-- pandas_DF.iloc[-1]\n", pandas_DF.iloc[-1])
print("\n-- pandas_DF.iloc[0,99,999]\n", pandas_DF.iloc[[0,99,999]])
일반적인 내용은 직접 실행하면 이해를 할 수 있습니다.
마지막 행 데이터를 추출하는 방법에 있어 loc, iloc의 방법이 다릅니다.
loc의 경우 마지막 행 데이터의 인덱스를 알아내야 합니다. shape[0]에 행 크기(1704)가 저자오디어 있다는 점을 이용하여 마지막 행의 인덱스를 구하면 됩니다. shape[0]에서 1을 뺀 값으로 마지막 행 데이터를 추출하면 됩니다.
iloc의 경우 -1을 입력하면 됩니다. iloc를 이용하여 한번에 여러 데이터를 한번에 뽑을 수 있습니다. iloc[[0,99,999]]이런식으로 []안에 여러 번호를 적어주면 됩니다.
-- pandas_DF.columns
Index(['country', 'continent', 'year', 'lifeExp', 'pop', 'gdpPercap'], dtype='object')
-- pandas_DF.shape
<class 'tuple'>
-- pandas_DF.shape
(1704, 6)
<class 'pandas.core.series.Series'>
0 Afghanistan
1 Afghanistan
2 Afghanistan
3 Afghanistan
4 Afghanistan
Name: country, dtype: object
1699 Zimbabwe
1700 Zimbabwe
1701 Zimbabwe
1702 Zimbabwe
1703 Zimbabwe
Name: country, dtype: object
<class 'pandas.core.frame.DataFrame'>
-- subset.head()
country continent year
0 Afghanistan Asia 1952
1 Afghanistan Asia 1957
2 Afghanistan Asia 1962
3 Afghanistan Asia 1967
4 Afghanistan Asia 1972
-- subset.tail()
country continent year
1699 Zimbabwe Africa 1987
1700 Zimbabwe Africa 1992
1701 Zimbabwe Africa 1997
1702 Zimbabwe Africa 2002
1703 Zimbabwe Africa 2007
-- pandas_DF.loc[0]
country Afghanistan
continent Asia
year 1952
lifeExp 28.801
pop 8425333
gdpPercap 779.445
Name: 0, dtype: object
-- pandas_DF.loc[99]
country Bangladesh
continent Asia
year 1967
lifeExp 43.453
pop 62821884
gdpPercap 721.186
Name: 99, dtype: object
-- pandas_DF.loc[last_row_index]
country Zimbabwe
continent Africa
year 2007
lifeExp 43.487
pop 12311143
gdpPercap 469.709
Name: 1703, dtype: object
-- pandas_DF.tail(1)
country continent year lifeExp pop gdpPercap
1703 Zimbabwe Africa 2007 43.487 12311143 469.709298
-- pandas_DF.iloc[0]
country Afghanistan
continent Asia
year 1952
lifeExp 28.801
pop 8425333
gdpPercap 779.445
Name: 0, dtype: object
-- pandas_DF.iloc[99]
country Bangladesh
continent Asia
year 1967
lifeExp 43.453
pop 62821884
gdpPercap 721.186
Name: 99, dtype: object
-- pandas_DF.iloc[-1]
country Zimbabwe
continent Africa
year 2007
lifeExp 43.487
pop 12311143
gdpPercap 469.709
Name: 1703, dtype: object
-- pandas_DF.iloc[0,99,999]
country continent year lifeExp pop gdpPercap
0 Afghanistan Asia 1952 28.801 8425333 779.445314
99 Bangladesh Asia 1967 43.453 62821884 721.186086
999 Mongolia Asia 1967 51.253 1149500 1226.041130
반응형
'Pandas' 카테고리의 다른 글
Pandas Sidetable: 판다스 똑똑하게 사용하기 - Freq, Counts, Missing, Subtotal (0) | 2021.04.16 |
---|---|
데이타 결측치(누락값, 결측값) 처리하기 : fillna (ffill, bfill), dropna, isnull (0) | 2020.12.07 |
Pandas에서 시간, 날짜 다루기 - to_datetime만 잘 다루면 끝! (0) | 2020.11.28 |
Pandas, read_excel()을 이용한 데이타 읽은 후 K-Means에 적용하기: 실습 (0) | 2020.11.27 |
Pandas 기초 통계를 위한 groupby 응용 - nunique()와 matplot로 그래프 간단하게 그리기 (0) | 2020.11.14 |
[TIP] Pycharm, Run Window에서 결과 값 전체 보이게 하기 (0) | 2020.11.01 |
Pandas 데이터 추출, 활용 하기 : loc, iloc 활용 [슬라이싱] (0) | 2020.10.14 |
Pandas(판다스)로 데이터 핸들링 : 기본 : info(), describe(), value_counts(), head() (1) | 2020.10.04 |