[๋น ๋ฐ์ดํฐ ๋ถ์๊ธฐ์ฌ] ์ค๊ธฐ 3ํ - 1์ ํ ์กฐ๊ฑด ์ธ๋ฑ์ค, set
๋ฌธ์
**1990๋ ๋๋ ํด๋น๋ ๋ ํ๊ท ์ดํ GDP๋ฅผ ๊ฐ์ง์ง๋ง, 2010๋ ๋์๋ ํด๋น๋ ๋ ํ๊ท ์ด์ GDP๋ฅผ ๊ฐ์ง๋ ๊ตญ๊ฐ์ ์ซ์๋ฅผ ๊ตฌํ์ฌ๋ผ**
cond1=df[(df['Year']==1990)]
cond2=df[(df['Value']<=75508617.9)]
df[cond1&cond2]

์ฌ์ง ์ค๋ช ์ ์ ๋ ฅํ์ธ์.
์ด๋ ๊ฒ ์ค๋ฅ๊ฐ ๋๋๊ฑฐ๋ค.. ๊ทผ๋ฐ ์๋ฌด๋ฆฌ ์๊ฐํด๋ ์ฝ๋๋ฅผ ์ ๋๋ก ์ผ๋ค ์๊ฐ ๋ค์ด์ ๋ต์์ ๋ดค๋ค
df_1990 = df[df.Year ==1990]
df_2010 = df[df.Year ==2010]
df_1990_filter = df_1990[df_1990.Value <= df_1990.Value.mean()]
df_2010_filter = df_2010[df_2010.Value >= df_2010.Value.mean()]
result = len(set(df_2010_filter['Country Code']) & set(df_1990_filter['Country Code']))
print(result)
๋๋ ๋ณ ์ฐจ์ด ์๋๋ฐ ์ ์๋์ง?? ํ๋๋ฐ cond1์ ์กฐ๊ฑด์ผ๋ก ๊ฑธ๋ ค๊ณ ํ๋๊ฑด๋ฐ ๊ทธ๊ฑธ df[]๋ก ํด๋ฒ๋ฆฐ ๊ฒ์ด๋ค..
mean1=df[(df['Year']==1990)]['Value'].mean()
mean2=df[(df['Year']==2010)]['Value'].mean()
cond1=(df['Year']==1990)
cond2=(df['Value']<=mean1)
df1=df[cond1&cond2]
cond3=(df['Year']==2010)
cond4=(df['Value']<=mean2)
df2=df[cond3&cond4]
์๋ฌดํผ ์ฌ๊ธฐ๊น์ง๋ ์๋ค. ๊ทผ๋ฐ ๋ ๋ฌธ์ ๊ฐ ์๊น
cond1&cond2 ๋ฅผ ๋ง์กฑํ๋ ๊ฒ๊ณผ cond3&cond4๋ฅผ ๋ง์กฑํ๋ ๊ฒ์ ์ด๋ป๊ฒ ํ๋์ ๋ฐ์ดํฐ ํ๋ ์์์์ ๋ณด๋๊ฐ???
๋ ๋ฐ์ดํฐํ๋ ์์์ ํน์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์ปฌ๋ผ์ ํฉ์งํฉ, ๊ต์งํฉ ๋ฑ์ ์ฐพ์ ๋๋ set ์ ์ฌ์ฉ
# ๊ต์งํฉ : set( ) & set( ), ํฉ์งํฉ : set( ) | set( ), ์ฐจ์งํฉ : set( ) - set( )
df1conlist = df1[condi1]['A'].values, df2conlist = df2[condi2]['A'].values
print(set(df2conlist) & set(df1conlist))
๊ทธ๋ฌ๋๊น ์ด ์ฝ๋๋ฅผ ์ฌ์ฉํ๋ฉด
์ฌ์ง ์ค๋ช ์ ์ ๋ ฅํ์ธ์.
df1 ๋ฐ์ดํฐ ์ผ์ชฝ
df2 ๋ฐ์ดํฐ ์ค๋ฅธ์ชฝ
์ผ์ชฝ๊ณผ ์ค๋ฅธ์ชฝ์ ๋์์ ๋ง์กฑํ๋ '๊ตญ๊ฐ'๋ฅผ ์ฐพ์ผ๋ฉด ๋๋ ๊ฒ์ด๋ค
๋ด๊ฐ ๋์ณค๋ ํฌ์ธํธ๊ฐ ์ผ์ชฝ๊ณผ ์ค๋ฅธ์ชฝ์ Value ๊ฐ์ด ๊ฐ์ ๊ฒ์ ์ฐพ์ผ๋ ค๊ณ ํ๋๋ฐ ๊ทธ๊ฒ ์๋๋ผ
๋ฌธ์ ๋ 1990๋ ๋์์ ํด๋น ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๊ตญ๊ฐ๊ฐ๊ฐ 2010๋ ๋์์๋ ํด๋น ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๊ตญ๊ฐ์ฌ์ผ ํ๋ค๋ ์ >> ๊ตญ๊ฐ๋ช ๋ง ์ผ์นํ๋ฉด ๋จ
set(df1['Country Code']) & set(df2['Country Code'])
๋ชจ๋ฅด๋ ํจ์๊ฐ ๊ณ์ ๋์จ๋ค ใ ใ ใ ..