1T_Pandas로 배우는 SQL 시작하기 (1) - WHERE, ORDER BY

갯수 세기 (COUNT)

칼럼명 변경하기 (AS)

정렬 (ORDER BY)

특정 조건에 대한 필터링(WHERE)

Pandas에서는

  • JOIN ( merge ) ( * )
  • GROUP BY ( * )

잠시 주석에 대해서


In [1]:
def hello():
    """
    주석입니다, docstring => 파이썬 코드를 문서화
    """
    pass

# 샵 이것도 주석

In [2]:
a = """

"""   #Multiline String입니다.

In [3]:
a = "여러줄
텍스트"


  File "<ipython-input-3-7e2db420f78f>", line 1
    a = "여러줄
            ^
SyntaxError: EOL while scanning string literal

In [7]:
a = "여러줄\
텍스트"

In [8]:
a


Out[8]:
'여러줄텍스트'

In [9]:
a = """
    안녕하세요.
    저는 김기표입니다.
"""

In [10]:
a


Out[10]:
'\n    안녕하세요.\n    저는 김기표입니다.\n'

In [11]:
a.strip()


Out[11]:
'안녕하세요.\n    저는 김기표입니다.'

In [12]:
a.replace("\n", " ")


Out[12]:
'     안녕하세요.     저는 김기표입니다. '

In [13]:
a.replace("\n", " ").strip()


Out[13]:
'안녕하세요.     저는 김기표입니다.'

In [ ]:


In [14]:
import pymysql

In [36]:
db = pymysql.connect(
    "db.fastcamp.us",
    "root",
    "dkstncks",
    "world",
    charset="utf8",
)

SQL_QUERY = """
    SELECT *
    FROM Country
    ;
"""

country_df = pd.read_sql(SQL_QUERY, db)

In [16]:
# pd.read_sql("SELECT * FROM Country;", db)
# 사실 이렇게 문장을 줄여서 쓸 수 있다.
  • SQL(Structured Query Language; 구조화된 질의 언어 == Python Programming Language)
    • 정규표현식 같은 경우에는 하나의 약속이지 프로그래밍 언어라고 할 순 없다.
    • 그래서 내부적으로 함수 같은 기능이 있다. count, sum, mean...

  • 연산에 대한 부분이 아니다, SQL 이런 연산에 굉장히 최적화 => 빠르게
  • 대신 느린 부분은 DATA가 100만개라면 Name, Population을 뽑아서 다운로드 받게 되면 네트워크에 대한 비용이 크게 부담된다. 그래서 10초 이상 걸리게 된다. DATA가 다 받아와 질 때까지. 그런데 만약에 COUNT를 쓰게 되면 이미 연산은 서버에서 되고 숫자만 바로 날아오는 것이다. 그러면 바로 정보를 받을 수 있는 것이다. 그래서 가능하면 SQL에서 연산이 가능한 것은 SQL에서 돌리고 pandas에서만 편하게 할 수 있는 것은 pasdas에서. 하지만 pandas가 편하기 때문에 csv로 받아와서 처리해도 되긴 하지만 계산된 데이터만 받아오는 것이 편할 경우에는 SQL에서

In [17]:
SQL_QUERY = """
    SELECT ____   #어떤 Column, 혹은 어떤 값을 DB로 가져올까
    FROM   ____   #어떤 Table (Excel, Sheet) 에서 정보를 가져올까
    ;
"""

In [18]:
SQL_QUERY = """
    SELECT *
    FROM Country
    ;
"""

# "select * from Country"   =>  똑같이 동작을 하겠지만 대문자로 쓰는 것이 약속
# ;(세미콜론) 있으나 없으나 이제는 동작하지만 그래도 끝났다는 것을 명시하기 위해 쓰는 게 낫다.

Country => Name, Population, Continent


In [19]:
SQL_QUERY = """
    SELECT Name, Population, Continent
    FROM Country
    ;
"""

df = pd.read_sql(SQL_QUERY, db)

In [20]:
df.head()


Out[20]:
Name Population Continent
0 Aruba 103000 North America
1 Afghanistan 22720000 Asia
2 Angola 12878000 Africa
3 Anguilla 8000 North America
4 Albania 3401200 Europe

In [23]:
country_df[["Name", "Population", "Continent"]].head()


Out[23]:
Name Population Continent
0 Aruba 103000 North America
1 Afghanistan 22720000 Asia
2 Angola 12878000 Africa
3 Anguilla 8000 North America
4 Albania 3401200 Europe

Name => 이름

Poplation => 인구

Continent = > 대륙으로 변경


In [26]:
npc_df = country_df[["Name", "Population", "Continent"]]

In [31]:
npc_df.rename(columns={"Name": "이름", "Population": "인구", "Continent": "대륙"})


Out[31]:
이름 인구 대륙
0 Aruba 103000 North America
1 Afghanistan 22720000 Asia
2 Angola 12878000 Africa
3 Anguilla 8000 North America
4 Albania 3401200 Europe
5 Andorra 78000 Europe
6 Netherlands Antilles 217000 North America
7 United Arab Emirates 2441000 Asia
8 Argentina 37032000 South America
9 Armenia 3520000 Asia
10 American Samoa 68000 Oceania
11 Antarctica 0 Antarctica
12 French Southern territories 0 Antarctica
13 Antigua and Barbuda 68000 North America
14 Australia 18886000 Oceania
15 Austria 8091800 Europe
16 Azerbaijan 7734000 Asia
17 Burundi 6695000 Africa
18 Belgium 10239000 Europe
19 Benin 6097000 Africa
20 Burkina Faso 11937000 Africa
21 Bangladesh 129155000 Asia
22 Bulgaria 8190900 Europe
23 Bahrain 617000 Asia
24 Bahamas 307000 North America
25 Bosnia and Herzegovina 3972000 Europe
26 Belarus 10236000 Europe
27 Belize 241000 North America
28 Bermuda 65000 North America
29 Bolivia 8329000 South America
... ... ... ...
209 Tokelau 2000 Oceania
210 Turkmenistan 4459000 Asia
211 East Timor 885000 Asia
212 Tonga 99000 Oceania
213 Trinidad and Tobago 1295000 North America
214 Tunisia 9586000 Africa
215 Turkey 66591000 Asia
216 Tuvalu 12000 Oceania
217 Taiwan 22256000 Asia
218 Tanzania 33517000 Africa
219 Uganda 21778000 Africa
220 Ukraine 50456000 Europe
221 United States Minor Outlying Islands 0 Oceania
222 Uruguay 3337000 South America
223 United States 278357000 North America
224 Uzbekistan 24318000 Asia
225 Holy See (Vatican City State) 1000 Europe
226 Saint Vincent and the Grenadines 114000 North America
227 Venezuela 24170000 South America
228 Virgin Islands, British 21000 North America
229 Virgin Islands, U.S. 93000 North America
230 Vietnam 79832000 Asia
231 Vanuatu 190000 Oceania
232 Wallis and Futuna 15000 Oceania
233 Samoa 180000 Oceania
234 Yemen 18112000 Asia
235 Yugoslavia 10640000 Europe
236 South Africa 40377000 Africa
237 Zambia 9169000 Africa
238 Zimbabwe 11669000 Africa

239 rows × 3 columns


In [38]:
SQL_QUERY = """
    SELECT Name AS "이름", Population AS "인구수", Continent AS "대륙"
    FROM Country
    ;
"""

pd.read_sql(SQL_QUERY, db)


Out[38]:
이름 인구수 대륙
0 Aruba 103000 North America
1 Afghanistan 22720000 Asia
2 Angola 12878000 Africa
3 Anguilla 8000 North America
4 Albania 3401200 Europe
5 Andorra 78000 Europe
6 Netherlands Antilles 217000 North America
7 United Arab Emirates 2441000 Asia
8 Argentina 37032000 South America
9 Armenia 3520000 Asia
10 American Samoa 68000 Oceania
11 Antarctica 0 Antarctica
12 French Southern territories 0 Antarctica
13 Antigua and Barbuda 68000 North America
14 Australia 18886000 Oceania
15 Austria 8091800 Europe
16 Azerbaijan 7734000 Asia
17 Burundi 6695000 Africa
18 Belgium 10239000 Europe
19 Benin 6097000 Africa
20 Burkina Faso 11937000 Africa
21 Bangladesh 129155000 Asia
22 Bulgaria 8190900 Europe
23 Bahrain 617000 Asia
24 Bahamas 307000 North America
25 Bosnia and Herzegovina 3972000 Europe
26 Belarus 10236000 Europe
27 Belize 241000 North America
28 Bermuda 65000 North America
29 Bolivia 8329000 South America
... ... ... ...
209 Tokelau 2000 Oceania
210 Turkmenistan 4459000 Asia
211 East Timor 885000 Asia
212 Tonga 99000 Oceania
213 Trinidad and Tobago 1295000 North America
214 Tunisia 9586000 Africa
215 Turkey 66591000 Asia
216 Tuvalu 12000 Oceania
217 Taiwan 22256000 Asia
218 Tanzania 33517000 Africa
219 Uganda 21778000 Africa
220 Ukraine 50456000 Europe
221 United States Minor Outlying Islands 0 Oceania
222 Uruguay 3337000 South America
223 United States 278357000 North America
224 Uzbekistan 24318000 Asia
225 Holy See (Vatican City State) 1000 Europe
226 Saint Vincent and the Grenadines 114000 North America
227 Venezuela 24170000 South America
228 Virgin Islands, British 21000 North America
229 Virgin Islands, U.S. 93000 North America
230 Vietnam 79832000 Asia
231 Vanuatu 190000 Oceania
232 Wallis and Futuna 15000 Oceania
233 Samoa 180000 Oceania
234 Yemen 18112000 Asia
235 Yugoslavia 10640000 Europe
236 South Africa 40377000 Africa
237 Zambia 9169000 Africa
238 Zimbabwe 11669000 Africa

239 rows × 3 columns


In [39]:
SQL_QUERY = """
    SELECT Name "이름", Population "인구수", Continent "대륙"
    FROM Country
    ;
"""
# AS가 없어도 동일하게 동작한다. 이건 없이 써도 됩니다.
pd.read_sql(SQL_QUERY, db)


Out[39]:
이름 인구수 대륙
0 Aruba 103000 North America
1 Afghanistan 22720000 Asia
2 Angola 12878000 Africa
3 Anguilla 8000 North America
4 Albania 3401200 Europe
5 Andorra 78000 Europe
6 Netherlands Antilles 217000 North America
7 United Arab Emirates 2441000 Asia
8 Argentina 37032000 South America
9 Armenia 3520000 Asia
10 American Samoa 68000 Oceania
11 Antarctica 0 Antarctica
12 French Southern territories 0 Antarctica
13 Antigua and Barbuda 68000 North America
14 Australia 18886000 Oceania
15 Austria 8091800 Europe
16 Azerbaijan 7734000 Asia
17 Burundi 6695000 Africa
18 Belgium 10239000 Europe
19 Benin 6097000 Africa
20 Burkina Faso 11937000 Africa
21 Bangladesh 129155000 Asia
22 Bulgaria 8190900 Europe
23 Bahrain 617000 Asia
24 Bahamas 307000 North America
25 Bosnia and Herzegovina 3972000 Europe
26 Belarus 10236000 Europe
27 Belize 241000 North America
28 Bermuda 65000 North America
29 Bolivia 8329000 South America
... ... ... ...
209 Tokelau 2000 Oceania
210 Turkmenistan 4459000 Asia
211 East Timor 885000 Asia
212 Tonga 99000 Oceania
213 Trinidad and Tobago 1295000 North America
214 Tunisia 9586000 Africa
215 Turkey 66591000 Asia
216 Tuvalu 12000 Oceania
217 Taiwan 22256000 Asia
218 Tanzania 33517000 Africa
219 Uganda 21778000 Africa
220 Ukraine 50456000 Europe
221 United States Minor Outlying Islands 0 Oceania
222 Uruguay 3337000 South America
223 United States 278357000 North America
224 Uzbekistan 24318000 Asia
225 Holy See (Vatican City State) 1000 Europe
226 Saint Vincent and the Grenadines 114000 North America
227 Venezuela 24170000 South America
228 Virgin Islands, British 21000 North America
229 Virgin Islands, U.S. 93000 North America
230 Vietnam 79832000 Asia
231 Vanuatu 190000 Oceania
232 Wallis and Futuna 15000 Oceania
233 Samoa 180000 Oceania
234 Yemen 18112000 Asia
235 Yugoslavia 10640000 Europe
236 South Africa 40377000 Africa
237 Zambia 9169000 Africa
238 Zimbabwe 11669000 Africa

239 rows × 3 columns


In [40]:
country_df.count()


Out[40]:
Code              239
Name              239
Continent         239
Region            239
SurfaceArea       239
IndepYear         192
Population        239
LifeExpectancy    222
GNP               239
GNPOld            178
LocalName         239
GovernmentForm    239
HeadOfState       238
Capital           232
Code2             239
dtype: int64

In [41]:
len(country_df)


Out[41]:
239

In [43]:
SQL_QUERY = """
    SELECT COUNT(*)
    FROM Country;
"""

pd.read_sql(SQL_QUERY, db)


Out[43]:
COUNT(*)
0 239

In [44]:
SQL_QUERY = """
    SELECT COUNT(*) "count"
    FROM Country;
"""

pd.read_sql(SQL_QUERY, db)


Out[44]:
count
0 239

In [47]:
SQL_QUERY = """
    SELECT SUM(Population)
    FROM Country;
"""
#SQL에는 SUM, AVG 등 다양한 내장함수가 있다.
pd.read_sql(SQL_QUERY, db)


Out[47]:
SUM(Population)
0 6.078749e+09

만약 어떤 데이터의 숫자만을 세야 하는 상황이라면? Pandas or SQL? SQL이 좋다.


In [48]:
import time

In [50]:
start_time = time.time()

#여기서부터 시작
count = len(pd.read_sql("SELECT * FROM Country;", db))
print(count)

end_time = time.time()

excute_time = end_time - start_time
print(excute_time)


239
0.04600262641906738

In [51]:
start_time = time.time()

#여기서부터 시작
pd.read_sql("SELECT COUNT(*) FROM Country;", db)

end_time = time.time()

excute_time = end_time - start_time
print(excute_time)


0.01000070571899414
  • SQL은 이런 연산에 굉장히 최적화 되어 있기 때문에 다른 언어보다 빠르다.
  • 대신에 느린 부분은?
    • 데이터가 100만개라면. Name, Population 등을 뽑을 때 다운로드 받아야 한다.
    • 네트워크에 대한 비용이 걸린다. 다운 받는 속도 때문에 오래 걸린다.
  • 그래서 빠르게 하는 방법은? SQL에서 가능한 연산은 SQL에서 돌리고 받는 것이 좋다.

조건에 따른 Filtering

  • Continent == Europe
  • Population > 10,000,000 데이터를 뽑아라

In [53]:
is_europe = country_df["Continent"] == "Europe" 
is_population = country_df["Population"] > 10000000

In [55]:
country_df[is_europe][is_population]


C:\Anaconda3\lib\site-packages\ipykernel\__main__.py:1: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  if __name__ == '__main__':
Out[55]:
Code Name Continent Region SurfaceArea IndepYear Population LifeExpectancy GNP GNPOld LocalName GovernmentForm HeadOfState Capital Code2
18 BEL Belgium Europe Western Europe 30518.0 1830.0 10239000 77.8 249704.0 243948.0 België/Belgique Constitutional Monarchy, Federation Albert II 179.0 BE
26 BLR Belarus Europe Eastern Europe 207600.0 1991.0 10236000 68.0 13714.0 NaN Belarus Republic Aljaksandr Lukašenka 3520.0 BY
55 CZE Czech Republic Europe Eastern Europe 78866.0 1993.0 10278100 74.5 55017.0 52037.0 ¸esko Republic Václav Havel 3339.0 CZ
56 DEU Germany Europe Western Europe 357022.0 1955.0 82164700 77.4 2133367.0 2102826.0 Deutschland Federal Republic Johannes Rau 3068.0 DE
66 ESP Spain Europe Southern Europe 505992.0 1492.0 39441700 78.8 553233.0 532031.0 España Constitutional Monarchy Juan Carlos I 653.0 ES
72 FRA France Europe Western Europe 551500.0 843.0 59225700 78.8 1424285.0 1392448.0 France Republic Jacques Chirac 2974.0 FR
76 GBR United Kingdom Europe British Islands 242900.0 1066.0 59623400 77.7 1378330.0 1296830.0 United Kingdom Constitutional Monarchy Elisabeth II 456.0 GB
85 GRC Greece Europe Southern Europe 131626.0 1830.0 10545700 78.4 120724.0 119946.0 Elláda Republic Kostis Stefanopoulos 2401.0 GR
97 HUN Hungary Europe Eastern Europe 93030.0 1918.0 10043200 71.4 48267.0 45914.0 Magyarország Republic Ferenc Mádl 3483.0 HU
106 ITA Italy Europe Southern Europe 301316.0 1861.0 57680000 79.0 1161755.0 1145372.0 Italia Republic Carlo Azeglio Ciampi 1464.0 IT
158 NLD Netherlands Europe Western Europe 41526.0 1581.0 15864000 78.3 371362.0 360478.0 Nederland Constitutional Monarchy Beatrix 5.0 NL
171 POL Poland Europe Eastern Europe 323250.0 1918.0 38653600 73.2 151697.0 135636.0 Polska Republic Aleksander Kwasniewski 2928.0 PL
180 ROM Romania Europe Eastern Europe 238391.0 1878.0 22455500 69.9 38158.0 34843.0 România Republic Ion Iliescu 3018.0 RO
181 RUS Russian Federation Europe Eastern Europe 17075400.0 1991.0 146934000 67.2 276608.0 442989.0 Rossija Federal Republic Vladimir Putin 3580.0 RU
220 UKR Ukraine Europe Eastern Europe 603700.0 1991.0 50456000 66.0 42168.0 49677.0 Ukrajina Republic Leonid Kutšma 3426.0 UA
235 YUG Yugoslavia Europe Southern Europe 102173.0 1918.0 10640000 72.4 17000.0 NaN Jugoslavija Federal Republic Vojislav Koštunica 1792.0 YU

In [58]:
# AND => 유럽에 있고, 인구가 1000만 이상인 애들
# OR => 유럽에 있거나, 인구가 1000만 이상인 애들 
# country_df[is_europe & is_population]
# country_df[is_europe | is_population]

In [61]:
SQL_QUERY = """
    SELECT *
    FROM Country
    WHERE 
        Continent = "Europe"
        AND Population > 10000000
    ;
"""

pd.read_sql(SQL_QUERY, db)


Out[61]:
Code Name Continent Region SurfaceArea IndepYear Population LifeExpectancy GNP GNPOld LocalName GovernmentForm HeadOfState Capital Code2
0 BEL Belgium Europe Western Europe 30518.0 1830 10239000 77.8 249704.0 243948.0 België/Belgique Constitutional Monarchy, Federation Albert II 179 BE
1 BLR Belarus Europe Eastern Europe 207600.0 1991 10236000 68.0 13714.0 NaN Belarus Republic Aljaksandr Lukašenka 3520 BY
2 CZE Czech Republic Europe Eastern Europe 78866.0 1993 10278100 74.5 55017.0 52037.0 ¸esko Republic Václav Havel 3339 CZ
3 DEU Germany Europe Western Europe 357022.0 1955 82164700 77.4 2133367.0 2102826.0 Deutschland Federal Republic Johannes Rau 3068 DE
4 ESP Spain Europe Southern Europe 505992.0 1492 39441700 78.8 553233.0 532031.0 España Constitutional Monarchy Juan Carlos I 653 ES
5 FRA France Europe Western Europe 551500.0 843 59225700 78.8 1424285.0 1392448.0 France Republic Jacques Chirac 2974 FR
6 GBR United Kingdom Europe British Islands 242900.0 1066 59623400 77.7 1378330.0 1296830.0 United Kingdom Constitutional Monarchy Elisabeth II 456 GB
7 GRC Greece Europe Southern Europe 131626.0 1830 10545700 78.4 120724.0 119946.0 Elláda Republic Kostis Stefanopoulos 2401 GR
8 HUN Hungary Europe Eastern Europe 93030.0 1918 10043200 71.4 48267.0 45914.0 Magyarország Republic Ferenc Mádl 3483 HU
9 ITA Italy Europe Southern Europe 301316.0 1861 57680000 79.0 1161755.0 1145372.0 Italia Republic Carlo Azeglio Ciampi 1464 IT
10 NLD Netherlands Europe Western Europe 41526.0 1581 15864000 78.3 371362.0 360478.0 Nederland Constitutional Monarchy Beatrix 5 NL
11 POL Poland Europe Eastern Europe 323250.0 1918 38653600 73.2 151697.0 135636.0 Polska Republic Aleksander Kwasniewski 2928 PL
12 ROM Romania Europe Eastern Europe 238391.0 1878 22455500 69.9 38158.0 34843.0 România Republic Ion Iliescu 3018 RO
13 RUS Russian Federation Europe Eastern Europe 17075400.0 1991 146934000 67.2 276608.0 442989.0 Rossija Federal Republic Vladimir Putin 3580 RU
14 UKR Ukraine Europe Eastern Europe 603700.0 1991 50456000 66.0 42168.0 49677.0 Ukrajina Republic Leonid Kutšma 3426 UA
15 YUG Yugoslavia Europe Southern Europe 102173.0 1918 10640000 72.4 17000.0 NaN Jugoslavija Federal Republic Vojislav Koštunica 1792 YU

Asia나 혹은 Europe에 속하는 국가를 1.pandas 2.sql 둘 다 뽑아보기

정답 4가지

1. pandas (1)


In [62]:
is_asia = country_df["Continent"] == "Asia"
is_europe = country_df["Continent"] == "Europe"

In [68]:
country_df[is_asia | is_europe]


Out[68]:
Code Name Continent Region SurfaceArea IndepYear Population LifeExpectancy GNP GNPOld LocalName GovernmentForm HeadOfState Capital Code2
1 AFG Afghanistan Asia Southern and Central Asia 652090.0 1919.0 22720000 45.9 5976.0 NaN Afganistan/Afqanestan Islamic Emirate Mohammad Omar 1.0 AF
4 ALB Albania Europe Southern Europe 28748.0 1912.0 3401200 71.6 3205.0 2500.0 Shqipëria Republic Rexhep Mejdani 34.0 AL
5 AND Andorra Europe Southern Europe 468.0 1278.0 78000 83.5 1630.0 NaN Andorra Parliamentary Coprincipality 55.0 AD
7 ARE United Arab Emirates Asia Middle East 83600.0 1971.0 2441000 74.1 37966.0 36846.0 Al-Imarat al-´Arabiya al-Muttahida Emirate Federation Zayid bin Sultan al-Nahayan 65.0 AE
9 ARM Armenia Asia Middle East 29800.0 1991.0 3520000 66.4 1813.0 1627.0 Hajastan Republic Robert Kotšarjan 126.0 AM
15 AUT Austria Europe Western Europe 83859.0 1918.0 8091800 77.7 211860.0 206025.0 Österreich Federal Republic Thomas Klestil 1523.0 AT
16 AZE Azerbaijan Asia Middle East 86600.0 1991.0 7734000 62.9 4127.0 4100.0 Azärbaycan Federal Republic Heydär Äliyev 144.0 AZ
18 BEL Belgium Europe Western Europe 30518.0 1830.0 10239000 77.8 249704.0 243948.0 België/Belgique Constitutional Monarchy, Federation Albert II 179.0 BE
21 BGD Bangladesh Asia Southern and Central Asia 143998.0 1971.0 129155000 60.2 32852.0 31966.0 Bangladesh Republic Shahabuddin Ahmad 150.0 BD
22 BGR Bulgaria Europe Eastern Europe 110994.0 1908.0 8190900 70.9 12178.0 10169.0 Balgarija Republic Petar Stojanov 539.0 BG
23 BHR Bahrain Asia Middle East 694.0 1971.0 617000 73.0 6366.0 6097.0 Al-Bahrayn Monarchy (Emirate) Hamad ibn Isa al-Khalifa 149.0 BH
25 BIH Bosnia and Herzegovina Europe Southern Europe 51197.0 1992.0 3972000 71.5 2841.0 NaN Bosna i Hercegovina Federal Republic Ante Jelavic 201.0 BA
26 BLR Belarus Europe Eastern Europe 207600.0 1991.0 10236000 68.0 13714.0 NaN Belarus Republic Aljaksandr Lukašenka 3520.0 BY
32 BRN Brunei Asia Southeast Asia 5765.0 1984.0 328000 73.6 11705.0 12460.0 Brunei Darussalam Monarchy (Sultanate) Haji Hassan al-Bolkiah 538.0 BN
33 BTN Bhutan Asia Southern and Central Asia 47000.0 1910.0 2124000 52.4 372.0 383.0 Druk-Yul Monarchy Jigme Singye Wangchuk 192.0 BT
39 CHE Switzerland Europe Western Europe 41284.0 1499.0 7160400 79.6 264478.0 256092.0 Schweiz/Suisse/Svizzera/Svizra Federation Adolf Ogi 3248.0 CH
41 CHN China Asia Eastern Asia 9572900.0 -1523.0 1277558000 71.4 982268.0 917719.0 Zhongquo People'sRepublic Jiang Zemin 1891.0 CN
54 CYP Cyprus Asia Middle East 9251.0 1960.0 754700 76.7 9333.0 8246.0 Kýpros/Kibris Republic Glafkos Klerides 2430.0 CY
55 CZE Czech Republic Europe Eastern Europe 78866.0 1993.0 10278100 74.5 55017.0 52037.0 ¸esko Republic Václav Havel 3339.0 CZ
56 DEU Germany Europe Western Europe 357022.0 1955.0 82164700 77.4 2133367.0 2102826.0 Deutschland Federal Republic Johannes Rau 3068.0 DE
59 DNK Denmark Europe Nordic Countries 43094.0 800.0 5330000 76.5 174099.0 169264.0 Danmark Constitutional Monarchy Margrethe II 3315.0 DK
66 ESP Spain Europe Southern Europe 505992.0 1492.0 39441700 78.8 553233.0 532031.0 España Constitutional Monarchy Juan Carlos I 653.0 ES
67 EST Estonia Europe Baltic Countries 45227.0 1991.0 1439200 69.5 5328.0 3371.0 Eesti Republic Lennart Meri 3791.0 EE
69 FIN Finland Europe Nordic Countries 338145.0 1917.0 5171300 77.4 121914.0 119833.0 Suomi Republic Tarja Halonen 3236.0 FI
72 FRA France Europe Western Europe 551500.0 843.0 59225700 78.8 1424285.0 1392448.0 France Republic Jacques Chirac 2974.0 FR
73 FRO Faroe Islands Europe Nordic Countries 1399.0 NaN 43000 78.4 0.0 NaN Føroyar Part of Denmark Margrethe II 901.0 FO
76 GBR United Kingdom Europe British Islands 242900.0 1066.0 59623400 77.7 1378330.0 1296830.0 United Kingdom Constitutional Monarchy Elisabeth II 456.0 GB
77 GEO Georgia Asia Middle East 69700.0 1991.0 4968000 64.5 6064.0 5924.0 Sakartvelo Republic Eduard Ševardnadze 905.0 GE
79 GIB Gibraltar Europe Southern Europe 6.0 NaN 25000 79.0 258.0 NaN Gibraltar Dependent Territory of the UK Elisabeth II 915.0 GI
85 GRC Greece Europe Southern Europe 131626.0 1830.0 10545700 78.4 120724.0 119946.0 Elláda Republic Kostis Stefanopoulos 2401.0 GR
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
163 OMN Oman Asia Middle East 309500.0 1951.0 2542000 71.8 16904.0 16153.0 ´Uman Monarchy (Sultanate) Qabus ibn Sa´id 2821.0 OM
164 PAK Pakistan Asia Southern and Central Asia 796095.0 1947.0 156483000 61.1 61289.0 58549.0 Pakistan Republic Mohammad Rafiq Tarar 2831.0 PK
168 PHL Philippines Asia Southeast Asia 300000.0 1946.0 75967000 67.5 65107.0 82239.0 Pilipinas Republic Gloria Macapagal-Arroyo 766.0 PH
171 POL Poland Europe Eastern Europe 323250.0 1918.0 38653600 73.2 151697.0 135636.0 Polska Republic Aleksander Kwasniewski 2928.0 PL
173 PRK North Korea Asia Eastern Asia 120538.0 1948.0 24039000 70.7 5332.0 NaN Choson Minjujuui In´min Konghwaguk (Bukhan) Socialistic Republic Kim Jong-il 2318.0 KP
174 PRT Portugal Europe Southern Europe 91982.0 1143.0 9997600 75.8 105954.0 102133.0 Portugal Republic Jorge Sampãio 2914.0 PT
176 PSE Palestine Asia Middle East 6257.0 NaN 3101000 71.4 4173.0 NaN Filastin Autonomous Area Yasser (Yasir) Arafat 4074.0 PS
178 QAT Qatar Asia Middle East 11000.0 1971.0 599000 72.4 9472.0 8920.0 Qatar Monarchy Hamad ibn Khalifa al-Thani 2973.0 QA
180 ROM Romania Europe Eastern Europe 238391.0 1878.0 22455500 69.9 38158.0 34843.0 România Republic Ion Iliescu 3018.0 RO
181 RUS Russian Federation Europe Eastern Europe 17075400.0 1991.0 146934000 67.2 276608.0 442989.0 Rossija Federal Republic Vladimir Putin 3580.0 RU
183 SAU Saudi Arabia Asia Middle East 2149690.0 1932.0 21607000 67.8 137635.0 146171.0 Al-´Arabiya as-Sa´udiya Monarchy Fahd ibn Abdul-Aziz al-Sa´ud 3173.0 SA
186 SGP Singapore Asia Southeast Asia 618.0 1965.0 3567000 80.1 86503.0 96318.0 Singapore/Singapura/Xinjiapo/Singapur Republic Sellapan Rama Nathan 3208.0 SG
189 SJM Svalbard and Jan Mayen Europe Nordic Countries 62422.0 NaN 3200 NaN 0.0 NaN Svalbard og Jan Mayen Dependent Territory of Norway Harald V 938.0 SJ
193 SMR San Marino Europe Southern Europe 61.0 885.0 27000 81.1 510.0 NaN San Marino Republic None 3171.0 SM
198 SVK Slovakia Europe Eastern Europe 49012.0 1993.0 5398700 73.7 20594.0 19452.0 Slovensko Republic Rudolf Schuster 3209.0 SK
199 SVN Slovenia Europe Southern Europe 20256.0 1991.0 1987800 74.9 19756.0 18202.0 Slovenija Republic Milan Kucan 3212.0 SI
200 SWE Sweden Europe Nordic Countries 449964.0 836.0 8861400 79.6 226492.0 227757.0 Sverige Constitutional Monarchy Carl XVI Gustaf 3048.0 SE
203 SYR Syria Asia Middle East 185180.0 1941.0 16125000 68.5 65984.0 64926.0 Suriya Republic Bashar al-Assad 3250.0 SY
207 THA Thailand Asia Southeast Asia 513115.0 1350.0 61399000 68.6 116416.0 153907.0 Prathet Thai Constitutional Monarchy Bhumibol Adulyadej 3320.0 TH
208 TJK Tajikistan Asia Southern and Central Asia 143100.0 1991.0 6188000 64.1 1990.0 1056.0 Toçikiston Republic Emomali Rahmonov 3261.0 TJ
210 TKM Turkmenistan Asia Southern and Central Asia 488100.0 1991.0 4459000 60.9 4397.0 2000.0 Türkmenostan Republic Saparmurad Nijazov 3419.0 TM
211 TMP East Timor Asia Southeast Asia 14874.0 NaN 885000 46.0 0.0 NaN Timor Timur Administrated by the UN José Alexandre Gusmão 1522.0 TP
215 TUR Turkey Asia Middle East 774815.0 1923.0 66591000 71.0 210721.0 189122.0 Türkiye Republic Ahmet Necdet Sezer 3358.0 TR
217 TWN Taiwan Asia Eastern Asia 36188.0 1945.0 22256000 76.4 256254.0 263451.0 T’ai-wan Republic Chen Shui-bian 3263.0 TW
220 UKR Ukraine Europe Eastern Europe 603700.0 1991.0 50456000 66.0 42168.0 49677.0 Ukrajina Republic Leonid Kutšma 3426.0 UA
224 UZB Uzbekistan Asia Southern and Central Asia 447400.0 1991.0 24318000 63.7 14194.0 21300.0 Uzbekiston Republic Islam Karimov 3503.0 UZ
225 VAT Holy See (Vatican City State) Europe Southern Europe 0.4 1929.0 1000 NaN 9.0 NaN Santa Sede/Città del Vaticano Independent Church State Johannes Paavali II 3538.0 VA
230 VNM Vietnam Asia Southeast Asia 331689.0 1945.0 79832000 69.3 21929.0 22834.0 Viêt Nam Socialistic Republic Trân Duc Luong 3770.0 VN
234 YEM Yemen Asia Middle East 527968.0 1918.0 18112000 59.8 6041.0 5729.0 Al-Yaman Republic Ali Abdallah Salih 1780.0 YE
235 YUG Yugoslavia Europe Southern Europe 102173.0 1918.0 10640000 72.4 17000.0 NaN Jugoslavija Federal Republic Vojislav Koštunica 1792.0 YU

97 rows × 15 columns

2. pandas (2)


In [76]:
is_asia_or_europe = country_df["Continent"].isin(["Asia", "Europe"])
country_df[is_asia_or_europe].head(3)


Out[76]:
Code Name Continent Region SurfaceArea IndepYear Population LifeExpectancy GNP GNPOld LocalName GovernmentForm HeadOfState Capital Code2
1 AFG Afghanistan Asia Southern and Central Asia 652090.0 1919.0 22720000 45.9 5976.0 NaN Afganistan/Afqanestan Islamic Emirate Mohammad Omar 1.0 AF
4 ALB Albania Europe Southern Europe 28748.0 1912.0 3401200 71.6 3205.0 2500.0 Shqipëria Republic Rexhep Mejdani 34.0 AL
5 AND Andorra Europe Southern Europe 468.0 1278.0 78000 83.5 1630.0 NaN Andorra Parliamentary Coprincipality 55.0 AD

In [78]:
# df["Continent"].str.contains("Asia")  =>  이건 텍스트마이닝 방법

3. sql (1)


In [74]:
SQL_QUERY = """
    SELECT *
    FROM Country
    WHERE
        Continent = "Asia"
        OR Continent = "Europe"
"""

pd.read_sql(SQL_QUERY, db)


Out[74]:
Code Name Continent Region SurfaceArea IndepYear Population LifeExpectancy GNP GNPOld LocalName GovernmentForm HeadOfState Capital Code2
0 AFG Afghanistan Asia Southern and Central Asia 652090.0 1919.0 22720000 45.9 5976.0 NaN Afganistan/Afqanestan Islamic Emirate Mohammad Omar 1 AF
1 ALB Albania Europe Southern Europe 28748.0 1912.0 3401200 71.6 3205.0 2500.0 Shqipëria Republic Rexhep Mejdani 34 AL
2 AND Andorra Europe Southern Europe 468.0 1278.0 78000 83.5 1630.0 NaN Andorra Parliamentary Coprincipality 55 AD
3 ARE United Arab Emirates Asia Middle East 83600.0 1971.0 2441000 74.1 37966.0 36846.0 Al-Imarat al-´Arabiya al-Muttahida Emirate Federation Zayid bin Sultan al-Nahayan 65 AE
4 ARM Armenia Asia Middle East 29800.0 1991.0 3520000 66.4 1813.0 1627.0 Hajastan Republic Robert Kotšarjan 126 AM
5 AUT Austria Europe Western Europe 83859.0 1918.0 8091800 77.7 211860.0 206025.0 Österreich Federal Republic Thomas Klestil 1523 AT
6 AZE Azerbaijan Asia Middle East 86600.0 1991.0 7734000 62.9 4127.0 4100.0 Azärbaycan Federal Republic Heydär Äliyev 144 AZ
7 BEL Belgium Europe Western Europe 30518.0 1830.0 10239000 77.8 249704.0 243948.0 België/Belgique Constitutional Monarchy, Federation Albert II 179 BE
8 BGD Bangladesh Asia Southern and Central Asia 143998.0 1971.0 129155000 60.2 32852.0 31966.0 Bangladesh Republic Shahabuddin Ahmad 150 BD
9 BGR Bulgaria Europe Eastern Europe 110994.0 1908.0 8190900 70.9 12178.0 10169.0 Balgarija Republic Petar Stojanov 539 BG
10 BHR Bahrain Asia Middle East 694.0 1971.0 617000 73.0 6366.0 6097.0 Al-Bahrayn Monarchy (Emirate) Hamad ibn Isa al-Khalifa 149 BH
11 BIH Bosnia and Herzegovina Europe Southern Europe 51197.0 1992.0 3972000 71.5 2841.0 NaN Bosna i Hercegovina Federal Republic Ante Jelavic 201 BA
12 BLR Belarus Europe Eastern Europe 207600.0 1991.0 10236000 68.0 13714.0 NaN Belarus Republic Aljaksandr Lukašenka 3520 BY
13 BRN Brunei Asia Southeast Asia 5765.0 1984.0 328000 73.6 11705.0 12460.0 Brunei Darussalam Monarchy (Sultanate) Haji Hassan al-Bolkiah 538 BN
14 BTN Bhutan Asia Southern and Central Asia 47000.0 1910.0 2124000 52.4 372.0 383.0 Druk-Yul Monarchy Jigme Singye Wangchuk 192 BT
15 CHE Switzerland Europe Western Europe 41284.0 1499.0 7160400 79.6 264478.0 256092.0 Schweiz/Suisse/Svizzera/Svizra Federation Adolf Ogi 3248 CH
16 CHN China Asia Eastern Asia 9572900.0 -1523.0 1277558000 71.4 982268.0 917719.0 Zhongquo People'sRepublic Jiang Zemin 1891 CN
17 CYP Cyprus Asia Middle East 9251.0 1960.0 754700 76.7 9333.0 8246.0 Kýpros/Kibris Republic Glafkos Klerides 2430 CY
18 CZE Czech Republic Europe Eastern Europe 78866.0 1993.0 10278100 74.5 55017.0 52037.0 ¸esko Republic Václav Havel 3339 CZ
19 DEU Germany Europe Western Europe 357022.0 1955.0 82164700 77.4 2133367.0 2102826.0 Deutschland Federal Republic Johannes Rau 3068 DE
20 DNK Denmark Europe Nordic Countries 43094.0 800.0 5330000 76.5 174099.0 169264.0 Danmark Constitutional Monarchy Margrethe II 3315 DK
21 ESP Spain Europe Southern Europe 505992.0 1492.0 39441700 78.8 553233.0 532031.0 España Constitutional Monarchy Juan Carlos I 653 ES
22 EST Estonia Europe Baltic Countries 45227.0 1991.0 1439200 69.5 5328.0 3371.0 Eesti Republic Lennart Meri 3791 EE
23 FIN Finland Europe Nordic Countries 338145.0 1917.0 5171300 77.4 121914.0 119833.0 Suomi Republic Tarja Halonen 3236 FI
24 FRA France Europe Western Europe 551500.0 843.0 59225700 78.8 1424285.0 1392448.0 France Republic Jacques Chirac 2974 FR
25 FRO Faroe Islands Europe Nordic Countries 1399.0 NaN 43000 78.4 0.0 NaN Føroyar Part of Denmark Margrethe II 901 FO
26 GBR United Kingdom Europe British Islands 242900.0 1066.0 59623400 77.7 1378330.0 1296830.0 United Kingdom Constitutional Monarchy Elisabeth II 456 GB
27 GEO Georgia Asia Middle East 69700.0 1991.0 4968000 64.5 6064.0 5924.0 Sakartvelo Republic Eduard Ševardnadze 905 GE
28 GIB Gibraltar Europe Southern Europe 6.0 NaN 25000 79.0 258.0 NaN Gibraltar Dependent Territory of the UK Elisabeth II 915 GI
29 GRC Greece Europe Southern Europe 131626.0 1830.0 10545700 78.4 120724.0 119946.0 Elláda Republic Kostis Stefanopoulos 2401 GR
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
67 OMN Oman Asia Middle East 309500.0 1951.0 2542000 71.8 16904.0 16153.0 ´Uman Monarchy (Sultanate) Qabus ibn Sa´id 2821 OM
68 PAK Pakistan Asia Southern and Central Asia 796095.0 1947.0 156483000 61.1 61289.0 58549.0 Pakistan Republic Mohammad Rafiq Tarar 2831 PK
69 PHL Philippines Asia Southeast Asia 300000.0 1946.0 75967000 67.5 65107.0 82239.0 Pilipinas Republic Gloria Macapagal-Arroyo 766 PH
70 POL Poland Europe Eastern Europe 323250.0 1918.0 38653600 73.2 151697.0 135636.0 Polska Republic Aleksander Kwasniewski 2928 PL
71 PRK North Korea Asia Eastern Asia 120538.0 1948.0 24039000 70.7 5332.0 NaN Choson Minjujuui In´min Konghwaguk (Bukhan) Socialistic Republic Kim Jong-il 2318 KP
72 PRT Portugal Europe Southern Europe 91982.0 1143.0 9997600 75.8 105954.0 102133.0 Portugal Republic Jorge Sampãio 2914 PT
73 PSE Palestine Asia Middle East 6257.0 NaN 3101000 71.4 4173.0 NaN Filastin Autonomous Area Yasser (Yasir) Arafat 4074 PS
74 QAT Qatar Asia Middle East 11000.0 1971.0 599000 72.4 9472.0 8920.0 Qatar Monarchy Hamad ibn Khalifa al-Thani 2973 QA
75 ROM Romania Europe Eastern Europe 238391.0 1878.0 22455500 69.9 38158.0 34843.0 România Republic Ion Iliescu 3018 RO
76 RUS Russian Federation Europe Eastern Europe 17075400.0 1991.0 146934000 67.2 276608.0 442989.0 Rossija Federal Republic Vladimir Putin 3580 RU
77 SAU Saudi Arabia Asia Middle East 2149690.0 1932.0 21607000 67.8 137635.0 146171.0 Al-´Arabiya as-Sa´udiya Monarchy Fahd ibn Abdul-Aziz al-Sa´ud 3173 SA
78 SGP Singapore Asia Southeast Asia 618.0 1965.0 3567000 80.1 86503.0 96318.0 Singapore/Singapura/Xinjiapo/Singapur Republic Sellapan Rama Nathan 3208 SG
79 SJM Svalbard and Jan Mayen Europe Nordic Countries 62422.0 NaN 3200 NaN 0.0 NaN Svalbard og Jan Mayen Dependent Territory of Norway Harald V 938 SJ
80 SMR San Marino Europe Southern Europe 61.0 885.0 27000 81.1 510.0 NaN San Marino Republic None 3171 SM
81 SVK Slovakia Europe Eastern Europe 49012.0 1993.0 5398700 73.7 20594.0 19452.0 Slovensko Republic Rudolf Schuster 3209 SK
82 SVN Slovenia Europe Southern Europe 20256.0 1991.0 1987800 74.9 19756.0 18202.0 Slovenija Republic Milan Kucan 3212 SI
83 SWE Sweden Europe Nordic Countries 449964.0 836.0 8861400 79.6 226492.0 227757.0 Sverige Constitutional Monarchy Carl XVI Gustaf 3048 SE
84 SYR Syria Asia Middle East 185180.0 1941.0 16125000 68.5 65984.0 64926.0 Suriya Republic Bashar al-Assad 3250 SY
85 THA Thailand Asia Southeast Asia 513115.0 1350.0 61399000 68.6 116416.0 153907.0 Prathet Thai Constitutional Monarchy Bhumibol Adulyadej 3320 TH
86 TJK Tajikistan Asia Southern and Central Asia 143100.0 1991.0 6188000 64.1 1990.0 1056.0 Toçikiston Republic Emomali Rahmonov 3261 TJ
87 TKM Turkmenistan Asia Southern and Central Asia 488100.0 1991.0 4459000 60.9 4397.0 2000.0 Türkmenostan Republic Saparmurad Nijazov 3419 TM
88 TMP East Timor Asia Southeast Asia 14874.0 NaN 885000 46.0 0.0 NaN Timor Timur Administrated by the UN José Alexandre Gusmão 1522 TP
89 TUR Turkey Asia Middle East 774815.0 1923.0 66591000 71.0 210721.0 189122.0 Türkiye Republic Ahmet Necdet Sezer 3358 TR
90 TWN Taiwan Asia Eastern Asia 36188.0 1945.0 22256000 76.4 256254.0 263451.0 T’ai-wan Republic Chen Shui-bian 3263 TW
91 UKR Ukraine Europe Eastern Europe 603700.0 1991.0 50456000 66.0 42168.0 49677.0 Ukrajina Republic Leonid Kutšma 3426 UA
92 UZB Uzbekistan Asia Southern and Central Asia 447400.0 1991.0 24318000 63.7 14194.0 21300.0 Uzbekiston Republic Islam Karimov 3503 UZ
93 VAT Holy See (Vatican City State) Europe Southern Europe 0.4 1929.0 1000 NaN 9.0 NaN Santa Sede/Città del Vaticano Independent Church State Johannes Paavali II 3538 VA
94 VNM Vietnam Asia Southeast Asia 331689.0 1945.0 79832000 69.3 21929.0 22834.0 Viêt Nam Socialistic Republic Trân Duc Luong 3770 VN
95 YEM Yemen Asia Middle East 527968.0 1918.0 18112000 59.8 6041.0 5729.0 Al-Yaman Republic Ali Abdallah Salih 1780 YE
96 YUG Yugoslavia Europe Southern Europe 102173.0 1918.0 10640000 72.4 17000.0 NaN Jugoslavija Federal Republic Vojislav Koštunica 1792 YU

97 rows × 15 columns

4. sql (2)


In [80]:
SQL_QUERY = """
    SELECT *
    FROM Country
    WHERE
        Continent IN ("Asia", "Europe")
    ;
"""

pd.read_sql(SQL_QUERY, db)


Out[80]:
Code Name Continent Region SurfaceArea IndepYear Population LifeExpectancy GNP GNPOld LocalName GovernmentForm HeadOfState Capital Code2
0 AFG Afghanistan Asia Southern and Central Asia 652090.0 1919.0 22720000 45.9 5976.0 NaN Afganistan/Afqanestan Islamic Emirate Mohammad Omar 1 AF
1 ALB Albania Europe Southern Europe 28748.0 1912.0 3401200 71.6 3205.0 2500.0 Shqipëria Republic Rexhep Mejdani 34 AL
2 AND Andorra Europe Southern Europe 468.0 1278.0 78000 83.5 1630.0 NaN Andorra Parliamentary Coprincipality 55 AD
3 ARE United Arab Emirates Asia Middle East 83600.0 1971.0 2441000 74.1 37966.0 36846.0 Al-Imarat al-´Arabiya al-Muttahida Emirate Federation Zayid bin Sultan al-Nahayan 65 AE
4 ARM Armenia Asia Middle East 29800.0 1991.0 3520000 66.4 1813.0 1627.0 Hajastan Republic Robert Kotšarjan 126 AM
5 AUT Austria Europe Western Europe 83859.0 1918.0 8091800 77.7 211860.0 206025.0 Österreich Federal Republic Thomas Klestil 1523 AT
6 AZE Azerbaijan Asia Middle East 86600.0 1991.0 7734000 62.9 4127.0 4100.0 Azärbaycan Federal Republic Heydär Äliyev 144 AZ
7 BEL Belgium Europe Western Europe 30518.0 1830.0 10239000 77.8 249704.0 243948.0 België/Belgique Constitutional Monarchy, Federation Albert II 179 BE
8 BGD Bangladesh Asia Southern and Central Asia 143998.0 1971.0 129155000 60.2 32852.0 31966.0 Bangladesh Republic Shahabuddin Ahmad 150 BD
9 BGR Bulgaria Europe Eastern Europe 110994.0 1908.0 8190900 70.9 12178.0 10169.0 Balgarija Republic Petar Stojanov 539 BG
10 BHR Bahrain Asia Middle East 694.0 1971.0 617000 73.0 6366.0 6097.0 Al-Bahrayn Monarchy (Emirate) Hamad ibn Isa al-Khalifa 149 BH
11 BIH Bosnia and Herzegovina Europe Southern Europe 51197.0 1992.0 3972000 71.5 2841.0 NaN Bosna i Hercegovina Federal Republic Ante Jelavic 201 BA
12 BLR Belarus Europe Eastern Europe 207600.0 1991.0 10236000 68.0 13714.0 NaN Belarus Republic Aljaksandr Lukašenka 3520 BY
13 BRN Brunei Asia Southeast Asia 5765.0 1984.0 328000 73.6 11705.0 12460.0 Brunei Darussalam Monarchy (Sultanate) Haji Hassan al-Bolkiah 538 BN
14 BTN Bhutan Asia Southern and Central Asia 47000.0 1910.0 2124000 52.4 372.0 383.0 Druk-Yul Monarchy Jigme Singye Wangchuk 192 BT
15 CHE Switzerland Europe Western Europe 41284.0 1499.0 7160400 79.6 264478.0 256092.0 Schweiz/Suisse/Svizzera/Svizra Federation Adolf Ogi 3248 CH
16 CHN China Asia Eastern Asia 9572900.0 -1523.0 1277558000 71.4 982268.0 917719.0 Zhongquo People'sRepublic Jiang Zemin 1891 CN
17 CYP Cyprus Asia Middle East 9251.0 1960.0 754700 76.7 9333.0 8246.0 Kýpros/Kibris Republic Glafkos Klerides 2430 CY
18 CZE Czech Republic Europe Eastern Europe 78866.0 1993.0 10278100 74.5 55017.0 52037.0 ¸esko Republic Václav Havel 3339 CZ
19 DEU Germany Europe Western Europe 357022.0 1955.0 82164700 77.4 2133367.0 2102826.0 Deutschland Federal Republic Johannes Rau 3068 DE
20 DNK Denmark Europe Nordic Countries 43094.0 800.0 5330000 76.5 174099.0 169264.0 Danmark Constitutional Monarchy Margrethe II 3315 DK
21 ESP Spain Europe Southern Europe 505992.0 1492.0 39441700 78.8 553233.0 532031.0 España Constitutional Monarchy Juan Carlos I 653 ES
22 EST Estonia Europe Baltic Countries 45227.0 1991.0 1439200 69.5 5328.0 3371.0 Eesti Republic Lennart Meri 3791 EE
23 FIN Finland Europe Nordic Countries 338145.0 1917.0 5171300 77.4 121914.0 119833.0 Suomi Republic Tarja Halonen 3236 FI
24 FRA France Europe Western Europe 551500.0 843.0 59225700 78.8 1424285.0 1392448.0 France Republic Jacques Chirac 2974 FR
25 FRO Faroe Islands Europe Nordic Countries 1399.0 NaN 43000 78.4 0.0 NaN Føroyar Part of Denmark Margrethe II 901 FO
26 GBR United Kingdom Europe British Islands 242900.0 1066.0 59623400 77.7 1378330.0 1296830.0 United Kingdom Constitutional Monarchy Elisabeth II 456 GB
27 GEO Georgia Asia Middle East 69700.0 1991.0 4968000 64.5 6064.0 5924.0 Sakartvelo Republic Eduard Ševardnadze 905 GE
28 GIB Gibraltar Europe Southern Europe 6.0 NaN 25000 79.0 258.0 NaN Gibraltar Dependent Territory of the UK Elisabeth II 915 GI
29 GRC Greece Europe Southern Europe 131626.0 1830.0 10545700 78.4 120724.0 119946.0 Elláda Republic Kostis Stefanopoulos 2401 GR
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
67 OMN Oman Asia Middle East 309500.0 1951.0 2542000 71.8 16904.0 16153.0 ´Uman Monarchy (Sultanate) Qabus ibn Sa´id 2821 OM
68 PAK Pakistan Asia Southern and Central Asia 796095.0 1947.0 156483000 61.1 61289.0 58549.0 Pakistan Republic Mohammad Rafiq Tarar 2831 PK
69 PHL Philippines Asia Southeast Asia 300000.0 1946.0 75967000 67.5 65107.0 82239.0 Pilipinas Republic Gloria Macapagal-Arroyo 766 PH
70 POL Poland Europe Eastern Europe 323250.0 1918.0 38653600 73.2 151697.0 135636.0 Polska Republic Aleksander Kwasniewski 2928 PL
71 PRK North Korea Asia Eastern Asia 120538.0 1948.0 24039000 70.7 5332.0 NaN Choson Minjujuui In´min Konghwaguk (Bukhan) Socialistic Republic Kim Jong-il 2318 KP
72 PRT Portugal Europe Southern Europe 91982.0 1143.0 9997600 75.8 105954.0 102133.0 Portugal Republic Jorge Sampãio 2914 PT
73 PSE Palestine Asia Middle East 6257.0 NaN 3101000 71.4 4173.0 NaN Filastin Autonomous Area Yasser (Yasir) Arafat 4074 PS
74 QAT Qatar Asia Middle East 11000.0 1971.0 599000 72.4 9472.0 8920.0 Qatar Monarchy Hamad ibn Khalifa al-Thani 2973 QA
75 ROM Romania Europe Eastern Europe 238391.0 1878.0 22455500 69.9 38158.0 34843.0 România Republic Ion Iliescu 3018 RO
76 RUS Russian Federation Europe Eastern Europe 17075400.0 1991.0 146934000 67.2 276608.0 442989.0 Rossija Federal Republic Vladimir Putin 3580 RU
77 SAU Saudi Arabia Asia Middle East 2149690.0 1932.0 21607000 67.8 137635.0 146171.0 Al-´Arabiya as-Sa´udiya Monarchy Fahd ibn Abdul-Aziz al-Sa´ud 3173 SA
78 SGP Singapore Asia Southeast Asia 618.0 1965.0 3567000 80.1 86503.0 96318.0 Singapore/Singapura/Xinjiapo/Singapur Republic Sellapan Rama Nathan 3208 SG
79 SJM Svalbard and Jan Mayen Europe Nordic Countries 62422.0 NaN 3200 NaN 0.0 NaN Svalbard og Jan Mayen Dependent Territory of Norway Harald V 938 SJ
80 SMR San Marino Europe Southern Europe 61.0 885.0 27000 81.1 510.0 NaN San Marino Republic None 3171 SM
81 SVK Slovakia Europe Eastern Europe 49012.0 1993.0 5398700 73.7 20594.0 19452.0 Slovensko Republic Rudolf Schuster 3209 SK
82 SVN Slovenia Europe Southern Europe 20256.0 1991.0 1987800 74.9 19756.0 18202.0 Slovenija Republic Milan Kucan 3212 SI
83 SWE Sweden Europe Nordic Countries 449964.0 836.0 8861400 79.6 226492.0 227757.0 Sverige Constitutional Monarchy Carl XVI Gustaf 3048 SE
84 SYR Syria Asia Middle East 185180.0 1941.0 16125000 68.5 65984.0 64926.0 Suriya Republic Bashar al-Assad 3250 SY
85 THA Thailand Asia Southeast Asia 513115.0 1350.0 61399000 68.6 116416.0 153907.0 Prathet Thai Constitutional Monarchy Bhumibol Adulyadej 3320 TH
86 TJK Tajikistan Asia Southern and Central Asia 143100.0 1991.0 6188000 64.1 1990.0 1056.0 Toçikiston Republic Emomali Rahmonov 3261 TJ
87 TKM Turkmenistan Asia Southern and Central Asia 488100.0 1991.0 4459000 60.9 4397.0 2000.0 Türkmenostan Republic Saparmurad Nijazov 3419 TM
88 TMP East Timor Asia Southeast Asia 14874.0 NaN 885000 46.0 0.0 NaN Timor Timur Administrated by the UN José Alexandre Gusmão 1522 TP
89 TUR Turkey Asia Middle East 774815.0 1923.0 66591000 71.0 210721.0 189122.0 Türkiye Republic Ahmet Necdet Sezer 3358 TR
90 TWN Taiwan Asia Eastern Asia 36188.0 1945.0 22256000 76.4 256254.0 263451.0 T’ai-wan Republic Chen Shui-bian 3263 TW
91 UKR Ukraine Europe Eastern Europe 603700.0 1991.0 50456000 66.0 42168.0 49677.0 Ukrajina Republic Leonid Kutšma 3426 UA
92 UZB Uzbekistan Asia Southern and Central Asia 447400.0 1991.0 24318000 63.7 14194.0 21300.0 Uzbekiston Republic Islam Karimov 3503 UZ
93 VAT Holy See (Vatican City State) Europe Southern Europe 0.4 1929.0 1000 NaN 9.0 NaN Santa Sede/Città del Vaticano Independent Church State Johannes Paavali II 3538 VA
94 VNM Vietnam Asia Southeast Asia 331689.0 1945.0 79832000 69.3 21929.0 22834.0 Viêt Nam Socialistic Republic Trân Duc Luong 3770 VN
95 YEM Yemen Asia Middle East 527968.0 1918.0 18112000 59.8 6041.0 5729.0 Al-Yaman Republic Ali Abdallah Salih 1780 YE
96 YUG Yugoslavia Europe Southern Europe 102173.0 1918.0 10640000 72.4 17000.0 NaN Jugoslavija Federal Republic Vojislav Koštunica 1792 YU

97 rows × 15 columns

정렬

Pandas에서 인구수 내림차순으로 정렬(즉, 인구가 많은 순서대로)


In [85]:
country_df.sort_values("Population", ascending=False)[["Name", "Population"]]


Out[85]:
Name Population
41 China 1277558000
99 India 1013662000
223 United States 278357000
98 Indonesia 212107000
30 Brazil 170115000
164 Pakistan 156483000
181 Russian Federation 146934000
21 Bangladesh 129155000
109 Japan 126714000
155 Nigeria 111506000
135 Mexico 98881000
56 Germany 82164700
230 Vietnam 79832000
168 Philippines 75967000
63 Egypt 68470000
102 Iran 67702000
215 Turkey 66591000
68 Ethiopia 62565000
207 Thailand 61399000
76 United Kingdom 59623400
72 France 59225700
106 Italy 57680000
44 Congo, The Democratic Republic of the 51654000
220 Ukraine 50456000
116 South Korea 46844000
140 Myanmar 45611000
47 Colombia 42321000
236 South Africa 40377000
66 Spain 39441700
171 Poland 38653600
... ... ...
123 Liechtenstein 32300
193 San Marino 27000
79 Gibraltar 25000
228 Virgin Islands, British 21000
46 Cook Islands 20000
169 Palau 19000
204 Turks and Caicos Islands 17000
232 Wallis and Futuna 15000
216 Tuvalu 12000
161 Nauru 12000
145 Montserrat 11000
3 Anguilla 8000
195 Saint Pierre and Miquelon 7000
188 Saint Helena 6000
189 Svalbard and Jan Mayen 3200
52 Christmas Island 2500
71 Falkland Islands 2000
209 Tokelau 2000
157 Niue 2000
154 Norfolk Island 2000
225 Holy See (Vatican City State) 1000
38 Cocos (Keeling) Islands 600
166 Pitcairn 50
11 Antarctica 0
34 Bouvet Island 0
221 United States Minor Outlying Islands 0
93 Heard Island and McDonald Islands 0
100 British Indian Ocean Territory 0
187 South Georgia and the South Sandwich Islands 0
12 French Southern territories 0

239 rows × 2 columns

  • sort() - deprecated(중요도가 떨어져 더 이상 사용되지 않고 앞으로는 사라지게 될 (컴퓨터 시스템 기능 등))

In [87]:
country_df.sort("Population")


C:\Anaconda3\lib\site-packages\ipykernel\__main__.py:1: FutureWarning: sort(columns=....) is deprecated, use sort_values(by=.....)
  if __name__ == '__main__':
Out[87]:
Code Name Continent Region SurfaceArea IndepYear Population LifeExpectancy GNP GNPOld LocalName GovernmentForm HeadOfState Capital Code2
34 BVT Bouvet Island Antarctica Antarctica 59.0 NaN 0 NaN 0.0 NaN Bouvetøya Dependent Territory of Norway Harald V NaN BV
100 IOT British Indian Ocean Territory Africa Eastern Africa 78.0 NaN 0 NaN 0.0 NaN British Indian Ocean Territory Dependent Territory of the UK Elisabeth II NaN IO
187 SGS South Georgia and the South Sandwich Islands Antarctica Antarctica 3903.0 NaN 0 NaN 0.0 NaN South Georgia and the South Sandwich Islands Dependent Territory of the UK Elisabeth II NaN GS
11 ATA Antarctica Antarctica Antarctica 13120000.0 NaN 0 NaN 0.0 NaN Co-administrated NaN AQ
12 ATF French Southern territories Antarctica Antarctica 7780.0 NaN 0 NaN 0.0 NaN Terres australes françaises Nonmetropolitan Territory of France Jacques Chirac NaN TF
221 UMI United States Minor Outlying Islands Oceania Micronesia/Caribbean 16.0 NaN 0 NaN 0.0 NaN United States Minor Outlying Islands Dependent Territory of the US George W. Bush NaN UM
93 HMD Heard Island and McDonald Islands Antarctica Antarctica 359.0 NaN 0 NaN 0.0 NaN Heard and McDonald Islands Territory of Australia Elisabeth II NaN HM
166 PCN Pitcairn Oceania Polynesia 49.0 NaN 50 NaN 0.0 NaN Pitcairn Dependent Territory of the UK Elisabeth II 2912.0 PN
38 CCK Cocos (Keeling) Islands Oceania Australia and New Zealand 14.0 NaN 600 NaN 0.0 NaN Cocos (Keeling) Islands Territory of Australia Elisabeth II 2317.0 CC
225 VAT Holy See (Vatican City State) Europe Southern Europe 0.4 1929.0 1000 NaN 9.0 NaN Santa Sede/Città del Vaticano Independent Church State Johannes Paavali II 3538.0 VA
209 TKL Tokelau Oceania Polynesia 12.0 NaN 2000 NaN 0.0 NaN Tokelau Nonmetropolitan Territory of New Zealand Elisabeth II 3333.0 TK
157 NIU Niue Oceania Polynesia 260.0 NaN 2000 NaN 0.0 NaN Niue Nonmetropolitan Territory of New Zealand Elisabeth II 2805.0 NU
154 NFK Norfolk Island Oceania Australia and New Zealand 36.0 NaN 2000 NaN 0.0 NaN Norfolk Island Territory of Australia Elisabeth II 2806.0 NF
71 FLK Falkland Islands South America South America 12173.0 NaN 2000 NaN 0.0 NaN Falkland Islands Dependent Territory of the UK Elisabeth II 763.0 FK
52 CXR Christmas Island Oceania Australia and New Zealand 135.0 NaN 2500 NaN 0.0 NaN Christmas Island Territory of Australia Elisabeth II 1791.0 CX
189 SJM Svalbard and Jan Mayen Europe Nordic Countries 62422.0 NaN 3200 NaN 0.0 NaN Svalbard og Jan Mayen Dependent Territory of Norway Harald V 938.0 SJ
188 SHN Saint Helena Africa Western Africa 314.0 NaN 6000 76.8 0.0 NaN Saint Helena Dependent Territory of the UK Elisabeth II 3063.0 SH
195 SPM Saint Pierre and Miquelon North America North America 242.0 NaN 7000 77.6 0.0 NaN Saint-Pierre-et-Miquelon Territorial Collectivity of France Jacques Chirac 3067.0 PM
3 AIA Anguilla North America Caribbean 96.0 NaN 8000 76.1 63.2 NaN Anguilla Dependent Territory of the UK Elisabeth II 62.0 AI
145 MSR Montserrat North America Caribbean 102.0 NaN 11000 78.0 109.0 NaN Montserrat Dependent Territory of the UK Elisabeth II 2697.0 MS
216 TUV Tuvalu Oceania Polynesia 26.0 1978.0 12000 66.3 6.0 NaN Tuvalu Constitutional Monarchy Elisabeth II 3424.0 TV
161 NRU Nauru Oceania Micronesia 21.0 1968.0 12000 60.8 197.0 NaN Naoero/Nauru Republic Bernard Dowiyogo 2728.0 NR
232 WLF Wallis and Futuna Oceania Polynesia 200.0 NaN 15000 NaN 0.0 NaN Wallis-et-Futuna Nonmetropolitan Territory of France Jacques Chirac 3536.0 WF
204 TCA Turks and Caicos Islands North America Caribbean 430.0 NaN 17000 73.3 96.0 NaN The Turks and Caicos Islands Dependent Territory of the UK Elisabeth II 3423.0 TC
169 PLW Palau Oceania Micronesia 459.0 1994.0 19000 68.6 105.0 NaN Belau/Palau Republic Kuniwo Nakamura 2881.0 PW
46 COK Cook Islands Oceania Polynesia 236.0 NaN 20000 71.1 100.0 NaN The Cook Islands Nonmetropolitan Territory of New Zealand Elisabeth II 583.0 CK
228 VGB Virgin Islands, British North America Caribbean 151.0 NaN 21000 75.4 612.0 573.0 British Virgin Islands Dependent Territory of the UK Elisabeth II 537.0 VG
79 GIB Gibraltar Europe Southern Europe 6.0 NaN 25000 79.0 258.0 NaN Gibraltar Dependent Territory of the UK Elisabeth II 915.0 GI
193 SMR San Marino Europe Southern Europe 61.0 885.0 27000 81.1 510.0 NaN San Marino Republic None 3171.0 SM
123 LIE Liechtenstein Europe Western Europe 160.0 1806.0 32300 78.8 1119.0 1084.0 Liechtenstein Constitutional Monarchy Hans-Adam II 2446.0 LI
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
171 POL Poland Europe Eastern Europe 323250.0 1918.0 38653600 73.2 151697.0 135636.0 Polska Republic Aleksander Kwasniewski 2928.0 PL
66 ESP Spain Europe Southern Europe 505992.0 1492.0 39441700 78.8 553233.0 532031.0 España Constitutional Monarchy Juan Carlos I 653.0 ES
236 ZAF South Africa Africa Southern Africa 1221037.0 1910.0 40377000 51.1 116729.0 129092.0 South Africa Republic Thabo Mbeki 716.0 ZA
47 COL Colombia South America South America 1138914.0 1810.0 42321000 70.3 102896.0 105116.0 Colombia Republic Andrés Pastrana Arango 2257.0 CO
140 MMR Myanmar Asia Southeast Asia 676578.0 1948.0 45611000 54.9 180375.0 171028.0 Myanma Pye Republic kenraali Than Shwe 2710.0 MM
116 KOR South Korea Asia Eastern Asia 99434.0 1948.0 46844000 74.4 320749.0 442544.0 Taehan Min’guk (Namhan) Republic Kim Dae-jung 2331.0 KR
220 UKR Ukraine Europe Eastern Europe 603700.0 1991.0 50456000 66.0 42168.0 49677.0 Ukrajina Republic Leonid Kutšma 3426.0 UA
44 COD Congo, The Democratic Republic of the Africa Central Africa 2344858.0 1960.0 51654000 48.8 6964.0 2474.0 République Démocratique du Congo Republic Joseph Kabila 2298.0 CD
106 ITA Italy Europe Southern Europe 301316.0 1861.0 57680000 79.0 1161755.0 1145372.0 Italia Republic Carlo Azeglio Ciampi 1464.0 IT
72 FRA France Europe Western Europe 551500.0 843.0 59225700 78.8 1424285.0 1392448.0 France Republic Jacques Chirac 2974.0 FR
76 GBR United Kingdom Europe British Islands 242900.0 1066.0 59623400 77.7 1378330.0 1296830.0 United Kingdom Constitutional Monarchy Elisabeth II 456.0 GB
207 THA Thailand Asia Southeast Asia 513115.0 1350.0 61399000 68.6 116416.0 153907.0 Prathet Thai Constitutional Monarchy Bhumibol Adulyadej 3320.0 TH
68 ETH Ethiopia Africa Eastern Africa 1104300.0 -1000.0 62565000 45.2 6353.0 6180.0 YeItyop´iya Republic Negasso Gidada 756.0 ET
215 TUR Turkey Asia Middle East 774815.0 1923.0 66591000 71.0 210721.0 189122.0 Türkiye Republic Ahmet Necdet Sezer 3358.0 TR
102 IRN Iran Asia Southern and Central Asia 1648195.0 1906.0 67702000 69.7 195746.0 160151.0 Iran Islamic Republic Ali Mohammad Khatami-Ardakani 1380.0 IR
63 EGY Egypt Africa Northern Africa 1001449.0 1922.0 68470000 63.3 82710.0 75617.0 Misr Republic Hosni Mubarak 608.0 EG
168 PHL Philippines Asia Southeast Asia 300000.0 1946.0 75967000 67.5 65107.0 82239.0 Pilipinas Republic Gloria Macapagal-Arroyo 766.0 PH
230 VNM Vietnam Asia Southeast Asia 331689.0 1945.0 79832000 69.3 21929.0 22834.0 Viêt Nam Socialistic Republic Trân Duc Luong 3770.0 VN
56 DEU Germany Europe Western Europe 357022.0 1955.0 82164700 77.4 2133367.0 2102826.0 Deutschland Federal Republic Johannes Rau 3068.0 DE
135 MEX Mexico North America Central America 1958201.0 1810.0 98881000 71.5 414972.0 401461.0 México Federal Republic Vicente Fox Quesada 2515.0 MX
155 NGA Nigeria Africa Western Africa 923768.0 1960.0 111506000 51.6 65707.0 58623.0 Nigeria Federal Republic Olusegun Obasanjo 2754.0 NG
109 JPN Japan Asia Eastern Asia 377829.0 -660.0 126714000 80.7 3787042.0 4192638.0 Nihon/Nippon Constitutional Monarchy Akihito 1532.0 JP
21 BGD Bangladesh Asia Southern and Central Asia 143998.0 1971.0 129155000 60.2 32852.0 31966.0 Bangladesh Republic Shahabuddin Ahmad 150.0 BD
181 RUS Russian Federation Europe Eastern Europe 17075400.0 1991.0 146934000 67.2 276608.0 442989.0 Rossija Federal Republic Vladimir Putin 3580.0 RU
164 PAK Pakistan Asia Southern and Central Asia 796095.0 1947.0 156483000 61.1 61289.0 58549.0 Pakistan Republic Mohammad Rafiq Tarar 2831.0 PK
30 BRA Brazil South America South America 8547403.0 1822.0 170115000 62.9 776739.0 804108.0 Brasil Federal Republic Fernando Henrique Cardoso 211.0 BR
98 IDN Indonesia Asia Southeast Asia 1904569.0 1945.0 212107000 68.0 84982.0 215002.0 Indonesia Republic Abdurrahman Wahid 939.0 ID
223 USA United States North America North America 9363520.0 1776.0 278357000 77.1 8510700.0 8110900.0 United States Federal Republic George W. Bush 3813.0 US
99 IND India Asia Southern and Central Asia 3287263.0 1947.0 1013662000 62.5 447114.0 430572.0 Bharat/India Federal Republic Kocheril Raman Narayanan 1109.0 IN
41 CHN China Asia Eastern Asia 9572900.0 -1523.0 1277558000 71.4 982268.0 917719.0 Zhongquo People'sRepublic Jiang Zemin 1891.0 CN

239 rows × 15 columns

  • 인구수가 1억 명 이상이면서, 아시아나 유럽에 포함된 국가들을 인구수 내림차순으로 출력하라 와 같은 문제도 풀 수 있다.

In [92]:
SQL_QUERY = """
    SELECT Name, Population
    FROM Country
    ORDER BY Population DESC
    ;
"""
# 기본값으로 ASC
pd.read_sql(SQL_QUERY, db)


Out[92]:
Name Population
0 China 1277558000
1 India 1013662000
2 United States 278357000
3 Indonesia 212107000
4 Brazil 170115000
5 Pakistan 156483000
6 Russian Federation 146934000
7 Bangladesh 129155000
8 Japan 126714000
9 Nigeria 111506000
10 Mexico 98881000
11 Germany 82164700
12 Vietnam 79832000
13 Philippines 75967000
14 Egypt 68470000
15 Iran 67702000
16 Turkey 66591000
17 Ethiopia 62565000
18 Thailand 61399000
19 United Kingdom 59623400
20 France 59225700
21 Italy 57680000
22 Congo, The Democratic Republic of the 51654000
23 Ukraine 50456000
24 South Korea 46844000
25 Myanmar 45611000
26 Colombia 42321000
27 South Africa 40377000
28 Spain 39441700
29 Poland 38653600
... ... ...
209 Liechtenstein 32300
210 San Marino 27000
211 Gibraltar 25000
212 Virgin Islands, British 21000
213 Cook Islands 20000
214 Palau 19000
215 Turks and Caicos Islands 17000
216 Wallis and Futuna 15000
217 Nauru 12000
218 Tuvalu 12000
219 Montserrat 11000
220 Anguilla 8000
221 Saint Pierre and Miquelon 7000
222 Saint Helena 6000
223 Svalbard and Jan Mayen 3200
224 Christmas Island 2500
225 Tokelau 2000
226 Norfolk Island 2000
227 Niue 2000
228 Falkland Islands 2000
229 Holy See (Vatican City State) 1000
230 Cocos (Keeling) Islands 600
231 Pitcairn 50
232 Bouvet Island 0
233 British Indian Ocean Territory 0
234 South Georgia and the South Sandwich Islands 0
235 United States Minor Outlying Islands 0
236 Heard Island and McDonald Islands 0
237 French Southern territories 0
238 Antarctica 0

239 rows × 2 columns


In [ ]: