๋ฌธ1) iris.csv ํŒŒ์ผ์„ ์ด์šฉํ•˜์—ฌ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ฐจํŠธ๋ฅผ ๊ทธ๋ฆฌ์‹œ์˜ค.
<์กฐ๊ฑด1> iris.csv ํŒŒ์ผ์„ iris ๋ณ€์ˆ˜๋ช…์œผ๋กœ ๊ฐ€์ ธ์˜จ ํ›„ ํŒŒ์ผ ์ •๋ณด ๋ณด๊ธฐ
<์กฐ๊ฑด2> 1๋ฒˆ ์นผ๋Ÿผ๊ณผ 3๋ฒˆ ์นผ๋Ÿผ์„ ๋Œ€์ƒ์œผ๋กœ ์‚ฐ์ ๋„ ๊ทธ๋ž˜ํ”„ ๊ทธ๋ฆฌ๊ธฐ
<์กฐ๊ฑด3> x์ถ• : 1๋ฒˆ ์นผ๋Ÿผ, y์ถ• : 3๋ฒˆ ์นผ๋Ÿผ, ์ƒ‰์ƒ : 5๋ฒˆ ์นผ๋Ÿผ์„ ์ด์šฉํ•˜์—ฌ ์‚ฐ์ ๋„ ๊ทธ๋ž˜ํ”„ ๊ทธ๋ฆฌ๊ธฐ
5๋ฒˆ ์นผ๋Ÿผ : ๋ ˆ์ด๋ธ” ์ธ์ฝ”๋”ฉ(label encoding) ์ ์šฉ 

 

import pandas as pd
import matplotlib.pyplot as plt


<์กฐ๊ฑด1> iris.csv ํŒŒ์ผ์„ iris ๋ณ€์ˆ˜๋ช…์œผ๋กœ ๊ฐ€์ ธ์˜จ ํ›„ ํŒŒ์ผ ์ •๋ณด ๋ณด๊ธฐ

iris = pd.read_csv(r'C:\ITWILL\4_Python-2\data\iris.csv')
print(iris.info())

 0   Sepal.Length  150 non-null    float64 - x์ถ• 
 1   Sepal.Width   150 non-null    float64 
 2   Petal.Length  150 non-null    float64 - y์ถ• 
 3   Petal.Width   150 non-null    float64
 4   Species       150 non-null    object  - color ์ž๋ฃŒ : ๋ฌธ์ž์—ด -> ์ˆซ์ž 

 

<์กฐ๊ฑด2> 1๋ฒˆ ์นผ๋Ÿผ(x)๊ณผ 3๋ฒˆ ์นผ๋Ÿผ(y)์„ ๋Œ€์ƒ์œผ๋กœ ์‚ฐ์ ๋„ ๊ทธ๋ž˜ํ”„ ๊ทธ๋ฆฌ๊ธฐ

plt.scatter(iris['Sepal.Length'], iris['Petal.Length'], c='r')
plt.xlabel('Sepal.Length')
plt.ylabel('Petal.Length')
plt.title('iris ๋ฐ์ดํ„ฐ ์…‹ ์‚ฐ์ ๋„')
plt.show()


color ์ž๋ฃŒ : ๋ฌธ์ž์—ด -> ์ˆซ์ž 

iris['Species'].value_counts()

virginica     50 - 2
versicolor    50 - 1
setosa        50 - 0


<์กฐ๊ฑด3> 1๋ฒˆ ์นผ๋Ÿผ๊ณผ 3๋ฒˆ ์นผ๋Ÿผ์„ ๋Œ€์ƒ์œผ๋กœ ์‚ฐ์ ๋„ ๊ทธ๋ž˜ํ”„ ๊ทธ๋ฆฐ ํ›„ 5๋ฒˆ ์นผ๋Ÿผ์œผ๋กœ ์ƒ‰์ƒ(c) ์ ์šฉ
1) ๋ฌธ์ž -> ์ˆซ์ž ๋ณ€ํ™˜ 

from sklearn.preprocessing import LabelEncoder #class 
import matplotlib.pyplot as plt

encoder = LabelEncoder() #object 
encoder.fit(iris.Species) #dataset ์ ์šฉ


data๋ณ€ํ™˜ : label -> 10์ง„์ˆ˜ ๋ณ€ํ™˜ 

labels = encoder.transform(iris.Species)


2) ์‚ฐ์ ๋„ ์‹œ๊ฐํ™” 

plt.scatter(iris['Sepal.Length'], iris['Petal.Length'],  c = labels) 
plt.xlabel('Sepal.Length')
plt.ylabel('Petal.Length')
plt.title('iris ๋ฐ์ดํ„ฐ ์…‹ ์‚ฐ์ ๋„')
plt.show()

 

 

 

 

 

๋ฌธ2) dataset.csv ํŒŒ์ผ์„ ์ด์šฉํ•˜์—ฌ ๊ต์ฐจํ…Œ์ด๋ธ”๊ณผ ๋ˆ„์ ๋ง‰๋Œ€์ฐจํŠธ๋ฅผ ๊ทธ๋ฆฌ์‹œ์˜ค.
<์กฐ๊ฑด1> ์„ฑ๋ณ„(gender)๊ณผ ๋งŒ์กฑ๋„(survey) ์นผ๋Ÿผ์œผ๋กœ ๊ต์ฐจํ…Œ์ด๋ธ”  ์ž‘์„ฑ 
<์กฐ๊ฑด2> ๊ต์ฐจํ…Œ์ด๋ธ” ๊ฒฐ๊ณผ๋ฅผ ๋Œ€์ƒ์œผ๋กœ ๋งŒ์กฑ๋„ 1,3,5๋งŒ ์„ ํƒํ•˜์—ฌ ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„ ์ƒ์„ฑ   
<์กฐ๊ฑด3> ์ƒ์„ฑ๋œ ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„ ๋Œ€์ƒ ์นผ๋Ÿผ๋ช… ์ˆ˜์ • : ['seoul','incheon','busan']
<์กฐ๊ฑด4> ์ƒ์„ฑ๋œ ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„ ๋Œ€์ƒ  index ์ˆ˜์ • : ['male', 'female']     
<์กฐ๊ฑด5> ์ƒ์„ฑ๋œ ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„ ๋Œ€์ƒ ๋ˆ„์ ๊ฐ€๋กœ๋ง‰๋Œ€์ฐจํŠธ ๊ทธ๋ฆฌ๊ธฐ

 

import pandas as pd


 ํŒŒ์ผ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ 

dataset = pd.read_csv('C:/ITWILL/4_Python-2/data/dataset.csv')
print(dataset.head())


์„ฑ๋ณ„(gender)๊ณผ ๋งŒ์กฑ๋„(survey) ๊ต์ฐจํ…Œ์ด๋ธ” 

dataset_table = pd.crosstab(dataset['gender'], dataset['survey']) # ํ–‰,์—ด
print(dataset_table)


๋งŒ์กฑ๋„ 1,3,5 ์„ ํƒ 

dataset_result = dataset_table.loc[:, [1,3,5]]


column ๋ณ€๊ฒฝ 

dataset_result.columns = ['seoul','incheon','busan']


index ๋ณ€๊ฒฝ 

dataset_result.index = ['male', 'female'] 
print(dataset_result)

dataset_result.plot(kind = 'barh', stacked=True,
                  title = 'gender vs survey plotting')

 

 

 

 

 

 

๋ฌธ3) seaborn์˜  titanic ๋ฐ์ดํ„ฐ์…‹์„ ์ด์šฉํ•˜์—ฌ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‹จ๊ณ„๋ณ„๋กœ ์‹œ๊ฐํ™”ํ•˜์‹œ์˜ค.
<๋‹จ๊ณ„1> 'survived','pclass', 'age','fare' ์นผ๋Ÿผ์œผ๋กœ ์„œ๋ธŒ์…‹ ๋งŒ๋“ค๊ธฐ
<๋‹จ๊ณ„2> 'survived' ์นผ๋Ÿผ์„ ์ง‘๋‹จ๋ณ€์ˆ˜๋กœ ํ•˜์—ฌ 'pclass', 'age','fare' ์นผ๋Ÿผ ๊ฐ„์˜ ์‚ฐ์ ๋„ํ–‰๋ ฌ ์‹œ๊ฐํ™”
<๋‹จ๊ณ„3> ์‚ฐ์ ๋„ํ–‰๋ ฌ์˜ ์‹œ๊ฐํ™” ๊ฒฐ๊ณผ ํ•ด์„คํ•˜๊ธฐ              

๋ฌธ4) seaborn์˜ tips ๋ฐ์ดํ„ฐ์…‹์„ ์ด์šฉํ•˜์—ฌ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‹จ๊ณ„๋ณ„๋กœ ์‹œ๊ฐํ™”ํ•˜์‹œ์˜ค.
<๋‹จ๊ณ„1> 'total_bill','tip','sex','size' ์นผ๋Ÿผ์œผ๋กœ ์„œ๋ธŒ์…‹ ๋งŒ๋“ค๊ธฐ 
<๋‹จ๊ณ„2> ์„ฑ๋ณ„(sex) ์นผ๋Ÿผ์„ ์ง‘๋‹จ๋ณ€์ˆ˜๋กœ ํ•˜์—ฌ total_bill, tip, size ์นผ๋Ÿผ ๊ฐ„์˜ ์‚ฐ์ ๋„ํ–‰๋ ฌ ์‹œ๊ฐํ™” 
<๋‹จ๊ณ„3> ์‚ฐ์ ๋„ํ–‰๋ ฌ์˜ ์‹œ๊ฐํ™” ๊ฒฐ๊ณผ ํ•ด์„คํ•˜๊ธฐ 

 

import matplotlib.pyplot as plt
import seaborn as sn


๋ฌธ3) seaborn์˜  titanic ๋ฐ์ดํ„ฐ์…‹์„ ์ด์šฉํ•˜์—ฌ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‹จ๊ณ„๋ณ„๋กœ ์‹œ๊ฐํ™”ํ•˜์‹œ์˜ค.

titanic = sn.load_dataset('titanic')
print(titanic.info())


<๋‹จ๊ณ„1> 'survived','pclass', 'age','fare' ์นผ๋Ÿผ์œผ๋กœ ์„œ๋ธŒ์…‹ ๋งŒ๋“ค๊ธฐ  

titanic_df = titanic[['survived','pclass', 'age','fare']]
print(titanic_df.info())
#sn.pairplot(data=DataFrame, hue='์ง‘๋‹จ๋ณ€์ˆ˜', kind='scatter')


<๋‹จ๊ณ„2> 'survived' ์นผ๋Ÿผ์„ ์ง‘๋‹จ๋ณ€์ˆ˜๋กœ ํ•˜์—ฌ 'pclass', 'age','fare' ์นผ๋Ÿผ ๊ฐ„์˜ ์‚ฐ์ ๋„ํ–‰๋ ฌ ์‹œ๊ฐํ™”

sn.pairplot(data=titanic_df, hue='survived')
plt.show()


<๋‹จ๊ณ„3> ์‚ฐ์ ๋„ํ–‰๋ ฌ์˜ ์‹œ๊ฐํ™” ๊ฒฐ๊ณผ ํ•ด์„คํ•˜๊ธฐ
pclass : 3๋“ฑ์„ ์ผ์ˆ˜๋ก ์‚ฌ๋ง๋น„์œจ ๋งค์šฐ ๋†’์Œ 
pclass vs fare : 1๋“ฑ์„ ์ผ์ˆ˜๋ก ๊ณ  ์š”๊ธˆ 
age : 25~50์„ธ ์‚ฌ์ด์—์„œ ๊ฐ€์žฅ ๋†’์€ ๋นˆ๋„, ์‚ฌ๋ง๊ณผ ์ƒ์กด ๋น„์œจ ๋น„์Šท 
age vs fare : ๋Œ€์ฒด์ ์œผ๋กœ ๋‚˜์ด๊ฐ€ ๋งŽ๊ณ , ์š”๊ธˆ์ด ๋‚ฎ์€ ๊ฒฝ์šฐ ์‚ฌ๋ง ๋น„์œจ ๋†’์Œ
fare : ๋น„์šฉ์ด ์ €๋ ดํ•œ ๊ฒฝ์šฐ๊ฐ€ ์ƒ๋Œ€์ ์œผ๋กœ ๋งŽ์€ ๋ถ„ํฌ
fare vs age : ๋Œ€์ฒด์ ์œผ๋กœ ์š”๊ธˆ์ด ๋‚ฎ๊ณ , ๋‚˜์ด๊ฐ€ 50๋Œ€ ์ด์ƒ์ธ ๊ฒฝ์šฐ ์‚ฌ๋ง ๋น„์œจ ๋†’์Œ    

survived vs age    
์—ฐ๋ น๋Œ€ ์ƒ์กด๋น„์œจ : 20~40 

titanic[titanic['survived'] == 1].age.plot(kind = 'hist', color = 'blue')


์—ฐ๋ น๋Œ€ ์‚ฌ๋ง๋น„์œจ : 20~40

titanic[titanic['survived'] == 0].age.plot(kind = 'hist', color = 'green')


๋ฌธ4) seaborn์˜ tips ๋ฐ์ดํ„ฐ์…‹์„ ์ด์šฉํ•˜์—ฌ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‹จ๊ณ„๋ณ„๋กœ ์‹œ๊ฐํ™”ํ•˜์‹œ์˜ค.

tips = sn.load_dataset('tips')
print(tips.info())


<๋‹จ๊ณ„1> 'total_bill','tip','sex','size' ์นผ๋Ÿผ์œผ๋กœ ์„œ๋ธŒ์…‹ ๋งŒ๋“ค๊ธฐ

tips_df = tips[['total_bill','tip','sex','size']]


<๋‹จ๊ณ„2> ์„ฑ๋ณ„(sex) ์นผ๋Ÿผ์„ ์ง‘๋‹จ๋ณ€์ˆ˜๋กœ ํ•˜์—ฌ total_bill, tip, size ์นผ๋Ÿผ ๊ฐ„์˜ ์‚ฐ์ ๋„ํ–‰๋ ฌ ์‹œ๊ฐํ™”

sn.pairplot(data=tips_df, hue='sex')
plt.show()


<๋‹จ๊ณ„3> ์‚ฐ์ ๋„ํ–‰๋ ฌ์˜ ์‹œ๊ฐํ™” ๊ฒฐ๊ณผ ํ•ด์„คํ•˜๊ธฐ
total_bill : ์ด๊ธˆ์•ก 15~20 ์‚ฌ์ด๊ฐ€ ๊ฐ€์žฅ ๋†’์€ ๋นˆ๋„, ๊ธˆ์•ก์ด ํด ์ˆ˜๋ก ๋‚จ์ž ์ง€๋ถˆ  
total_bill vs tip  : ๋Œ€์ฒด์ ์œผ๋กœ ๋น„๋ก€๊ด€๊ณ„, ์ด๊ธˆ์•ก๊ณผ ํŒ์ด ๋งŽ์€ ๊ฒฝ์šฐ ๋‚จ์ž ์ง€๋ถˆ
tip : ํŒ์€ 1~5 ์‚ฌ์ด๊ฐ€ ๊ฐ€์žฅ ๋†’์€ ๋นˆ๋„, ํŒ ๊ธˆ์•ก์ด ํด ์ˆ˜๋ก ๋‚จ์ž ์ง€๋ถˆ 
total_bill vs size : ํ–‰์‚ฌ๊ทœ๋ชจ๊ฐ€ ์ž‘์€ ๊ฒฝ์šฐ ์—ฌ์„ฑ ์ง€๋ถˆ
size : ํ–‰์‚ฌ๊ทœ๋ชจ 2๊ฐ€ ๊ฐ€์žฅ ๋†’์€ ๋นˆ๋„, ํŠนํžˆ 4์ผ๋•Œ ๋‚จ์ž ์ง€๋ถˆ 
size vs total_bill : ๋Œ€์ฒด์ ์œผ๋กœ ๋น„๋ก€๊ด€๊ณ„, ๊ทœ๋ชจ๊ฐ€ ํฐ ๊ฒฝ์šฐ ์ด๊ธˆ์•ก์ด ๋งŽ์Œ

+ Recent posts