EDA Danych dotyczących Titanica¶
O Danych¶
Dane o pasażerach Titanica
Zbiór danych zawiera informacje o pasażerach RMS Titanic, który zatonął 15 kwietnia 1912 roku po zderzeniu z górą lodową. Dane obejmują takie atrybuty jak klasa podróży, wiek, płeć, liczba rodzeństwa/małżonków na pokładzie, liczba rodziców/dzieci na pokładzie, cena biletu oraz miejsce zaokrętowania.
Zbiór zawiera także informację o tym, czy pasażer przeżył katastrofę.
Titanic przewoził ponad 2,200 osób, z czego ponad 1,500 zginęło, co czyni tę katastrofę jedną z najbardziej tragicznych w historii morskiej.
Kolumny:
- pclass - Klasa biletu
- survived - Czy pasażer przeżył katastrofę
- name - Imię i nazwisko pasażera
- sex - Płeć pasażera
- age - Wiek pasażera
- sibsp - Liczba rodzeństwa/małżonków na pokładzie
- parch - Liczba rodziców/dzieci na pokładzie
- ticket - Numer biletu
- fare - Cena biletu
- cabin - Numer kabiny
- embarked - Port, w którym pasażer wszedł na pokład (C = Cherbourg, Q = Queenstown, S = Southampton)
- boat - Numer łodzi ratunkowej
- body - Numer ciała (jeśli pasażer nie przeżył i ciało zostało odnalezione)
- home.dest - Miejsce docelowe
In [1]:
Copied!
import pandas as pd
import pandas as pd
In [2]:
Copied!
df = pd.read_csv('26__titanic.csv', sep=",")
df
df = pd.read_csv('26__titanic.csv', sep=",")
df
Out[2]:
| pclass | survived | name | sex | age | sibsp | parch | ticket | fare | cabin | embarked | boat | body | home.dest | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 1.0 | 1.0 | Allen, Miss. Elisabeth Walton | female | 29.0000 | 0.0 | 0.0 | 24160 | 211.3375 | B5 | S | 2 | NaN | St Louis, MO |
| 1 | 1.0 | 1.0 | Allison, Master. Hudson Trevor | male | 0.9167 | 1.0 | 2.0 | 113781 | 151.5500 | C22 C26 | S | 11 | NaN | Montreal, PQ / Chesterville, ON |
| 2 | 1.0 | 0.0 | Allison, Miss. Helen Loraine | female | 2.0000 | 1.0 | 2.0 | 113781 | 151.5500 | C22 C26 | S | NaN | NaN | Montreal, PQ / Chesterville, ON |
| 3 | 1.0 | 0.0 | Allison, Mr. Hudson Joshua Creighton | male | 30.0000 | 1.0 | 2.0 | 113781 | 151.5500 | C22 C26 | S | NaN | 135.0 | Montreal, PQ / Chesterville, ON |
| 4 | 1.0 | 0.0 | Allison, Mrs. Hudson J C (Bessie Waldo Daniels) | female | 25.0000 | 1.0 | 2.0 | 113781 | 151.5500 | C22 C26 | S | NaN | NaN | Montreal, PQ / Chesterville, ON |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 1305 | 3.0 | 0.0 | Zabour, Miss. Thamine | female | NaN | 1.0 | 0.0 | 2665 | 14.4542 | NaN | C | NaN | NaN | NaN |
| 1306 | 3.0 | 0.0 | Zakarian, Mr. Mapriededer | male | 26.5000 | 0.0 | 0.0 | 2656 | 7.2250 | NaN | C | NaN | 304.0 | NaN |
| 1307 | 3.0 | 0.0 | Zakarian, Mr. Ortin | male | 27.0000 | 0.0 | 0.0 | 2670 | 7.2250 | NaN | C | NaN | NaN | NaN |
| 1308 | 3.0 | 0.0 | Zimmerman, Mr. Leo | male | 29.0000 | 0.0 | 0.0 | 315082 | 7.8750 | NaN | S | NaN | NaN | NaN |
| 1309 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
1310 rows × 14 columns
Podstawowe informacje o Data Frame Titanic¶
In [3]:
Copied!
df.info()
df.info()
<class 'pandas.core.frame.DataFrame'> RangeIndex: 1310 entries, 0 to 1309 Data columns (total 14 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 pclass 1309 non-null float64 1 survived 1309 non-null float64 2 name 1309 non-null object 3 sex 1309 non-null object 4 age 1046 non-null float64 5 sibsp 1309 non-null float64 6 parch 1309 non-null float64 7 ticket 1309 non-null object 8 fare 1308 non-null float64 9 cabin 295 non-null object 10 embarked 1307 non-null object 11 boat 486 non-null object 12 body 121 non-null float64 13 home.dest 745 non-null object dtypes: float64(7), object(7) memory usage: 143.4+ KB
In [4]:
Copied!
df.isnull().sum()
df.isnull().sum()
Out[4]:
pclass 1 survived 1 name 1 sex 1 age 264 sibsp 1 parch 1 ticket 1 fare 2 cabin 1015 embarked 3 boat 824 body 1189 home.dest 565 dtype: int64
In [5]:
Copied!
df.nunique()
df.nunique()
Out[5]:
pclass 3 survived 2 name 1307 sex 2 age 98 sibsp 7 parch 8 ticket 929 fare 281 cabin 186 embarked 3 boat 27 body 121 home.dest 369 dtype: int64
In [6]:
Copied!
df.describe()
df.describe()
Out[6]:
| pclass | survived | age | sibsp | parch | fare | body | |
|---|---|---|---|---|---|---|---|
| count | 1309.000000 | 1309.000000 | 1046.000000 | 1309.000000 | 1309.000000 | 1308.000000 | 121.000000 |
| mean | 2.294882 | 0.381971 | 29.881135 | 0.498854 | 0.385027 | 33.295479 | 160.809917 |
| std | 0.837836 | 0.486055 | 14.413500 | 1.041658 | 0.865560 | 51.758668 | 97.696922 |
| min | 1.000000 | 0.000000 | 0.166700 | 0.000000 | 0.000000 | 0.000000 | 1.000000 |
| 25% | 2.000000 | 0.000000 | 21.000000 | 0.000000 | 0.000000 | 7.895800 | 72.000000 |
| 50% | 3.000000 | 0.000000 | 28.000000 | 0.000000 | 0.000000 | 14.454200 | 155.000000 |
| 75% | 3.000000 | 1.000000 | 39.000000 | 1.000000 | 0.000000 | 31.275000 | 256.000000 |
| max | 3.000000 | 1.000000 | 80.000000 | 8.000000 | 9.000000 | 512.329200 | 328.000000 |
In [7]:
Copied!
df.sample(25)
df.sample(25)
Out[7]:
| pclass | survived | name | sex | age | sibsp | parch | ticket | fare | cabin | embarked | boat | body | home.dest | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1191 | 3.0 | 0.0 | Saundercock, Mr. William Henry | male | 20.0 | 0.0 | 0.0 | A/5. 2151 | 8.0500 | NaN | S | NaN | NaN | NaN |
| 894 | 3.0 | 1.0 | Johnson, Master. Harold Theodor | male | 4.0 | 1.0 | 1.0 | 347742 | 11.1333 | NaN | S | 15 | NaN | NaN |
| 749 | 3.0 | 0.0 | Danbom, Mrs. Ernst Gilbert (Anna Sigrid Maria ... | female | 28.0 | 1.0 | 1.0 | 347080 | 14.4000 | NaN | S | NaN | NaN | Stanton, IA |
| 511 | 2.0 | 0.0 | Myles, Mr. Thomas Francis | male | 62.0 | 0.0 | 0.0 | 240276 | 9.6875 | NaN | Q | NaN | NaN | Cambridge, MA |
| 168 | 1.0 | 1.0 | Icard, Miss. Amelie | female | 38.0 | 0.0 | 0.0 | 113572 | 80.0000 | B28 | NaN | 6 | NaN | NaN |
| 811 | 3.0 | 0.0 | Ford, Mrs. Edward (Margaret Ann Watson) | female | 48.0 | 1.0 | 3.0 | W./C. 6608 | 34.3750 | NaN | S | NaN | NaN | Rotherfield, Sussex, England Essex Co, MA |
| 766 | 3.0 | 0.0 | Delalic, Mr. Redjo | male | 25.0 | 0.0 | 0.0 | 349250 | 7.8958 | NaN | S | NaN | NaN | NaN |
| 198 | 1.0 | 1.0 | Marvin, Mrs. Daniel Warner (Mary Graham Carmic... | female | 18.0 | 1.0 | 0.0 | 113773 | 53.1000 | D30 | S | 10 | NaN | New York, NY |
| 452 | 2.0 | 1.0 | Hold, Mrs. Stephen (Annie Margaret Hill) | female | 29.0 | 1.0 | 0.0 | 26707 | 26.0000 | NaN | S | 10 | NaN | England / Sacramento, CA |
| 1254 | 3.0 | 1.0 | Tornquist, Mr. William Henry | male | 25.0 | 0.0 | 0.0 | LINE | 0.0000 | NaN | S | 15 | NaN | NaN |
| 781 | 3.0 | 0.0 | Drazenoic, Mr. Jozef | male | 33.0 | 0.0 | 0.0 | 349241 | 7.8958 | NaN | C | NaN | 51.0 | Austria Niagara Falls, NY |
| 797 | 3.0 | 0.0 | Farrell, Mr. James | male | 40.5 | 0.0 | 0.0 | 367232 | 7.7500 | NaN | Q | NaN | 68.0 | Aughnacliff, Co Longford, Ireland New York, NY |
| 1110 | 3.0 | 0.0 | Pavlovic, Mr. Stefo | male | 32.0 | 0.0 | 0.0 | 349242 | 7.8958 | NaN | S | NaN | NaN | NaN |
| 21 | 1.0 | 1.0 | Beckwith, Mrs. Richard Leonard (Sallie Monypeny) | female | 47.0 | 1.0 | 1.0 | 11751 | 52.5542 | D35 | S | 5 | NaN | New York, NY |
| 418 | 2.0 | 0.0 | Gilbert, Mr. William | male | 47.0 | 0.0 | 0.0 | C.A. 30769 | 10.5000 | NaN | S | NaN | NaN | Cornwall |
| 24 | 1.0 | 1.0 | Bird, Miss. Ellen | female | 29.0 | 0.0 | 0.0 | PC 17483 | 221.7792 | C97 | S | 8 | NaN | NaN |
| 123 | 1.0 | 1.0 | Frolicher-Stehli, Mr. Maxmillian | male | 60.0 | 1.0 | 1.0 | 13567 | 79.2000 | B41 | C | 5 | NaN | Zurich, Switzerland |
| 466 | 2.0 | 0.0 | Kantor, Mr. Sinai | male | 34.0 | 1.0 | 0.0 | 244367 | 26.0000 | NaN | S | NaN | 283.0 | Moscow / Bronx, NY |
| 907 | 3.0 | 0.0 | Jussila, Miss. Katriina | female | 20.0 | 1.0 | 0.0 | 4136 | 9.8250 | NaN | S | NaN | NaN | NaN |
| 1180 | 3.0 | 0.0 | Sage, Mrs. John (Annie Bullen) | female | NaN | 1.0 | 9.0 | CA. 2343 | 69.5500 | NaN | S | NaN | NaN | NaN |
| 280 | 1.0 | 1.0 | Stengel, Mr. Charles Emil Henry | male | 54.0 | 1.0 | 0.0 | 11778 | 55.4417 | C116 | C | 1 | NaN | Newark, NJ |
| 66 | 1.0 | 1.0 | Chaudanson, Miss. Victorine | female | 36.0 | 0.0 | 0.0 | PC 17608 | 262.3750 | B61 | C | 4 | NaN | NaN |
| 19 | 1.0 | 0.0 | Beattie, Mr. Thomson | male | 36.0 | 0.0 | 0.0 | 13050 | 75.2417 | C6 | C | A | NaN | Winnipeg, MN |
| 527 | 2.0 | 0.0 | Parker, Mr. Clifford Richard | male | 28.0 | 0.0 | 0.0 | SC 14888 | 10.5000 | NaN | S | NaN | NaN | St Andrews, Guernsey |
| 403 | 2.0 | 0.0 | Eitemiller, Mr. George Floyd | male | 23.0 | 0.0 | 0.0 | 29751 | 13.0000 | NaN | S | NaN | NaN | England / Detroit, MI |
In [8]:
Copied!
df.head(20)
df.head(20)
Out[8]:
| pclass | survived | name | sex | age | sibsp | parch | ticket | fare | cabin | embarked | boat | body | home.dest | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 1.0 | 1.0 | Allen, Miss. Elisabeth Walton | female | 29.0000 | 0.0 | 0.0 | 24160 | 211.3375 | B5 | S | 2 | NaN | St Louis, MO |
| 1 | 1.0 | 1.0 | Allison, Master. Hudson Trevor | male | 0.9167 | 1.0 | 2.0 | 113781 | 151.5500 | C22 C26 | S | 11 | NaN | Montreal, PQ / Chesterville, ON |
| 2 | 1.0 | 0.0 | Allison, Miss. Helen Loraine | female | 2.0000 | 1.0 | 2.0 | 113781 | 151.5500 | C22 C26 | S | NaN | NaN | Montreal, PQ / Chesterville, ON |
| 3 | 1.0 | 0.0 | Allison, Mr. Hudson Joshua Creighton | male | 30.0000 | 1.0 | 2.0 | 113781 | 151.5500 | C22 C26 | S | NaN | 135.0 | Montreal, PQ / Chesterville, ON |
| 4 | 1.0 | 0.0 | Allison, Mrs. Hudson J C (Bessie Waldo Daniels) | female | 25.0000 | 1.0 | 2.0 | 113781 | 151.5500 | C22 C26 | S | NaN | NaN | Montreal, PQ / Chesterville, ON |
| 5 | 1.0 | 1.0 | Anderson, Mr. Harry | male | 48.0000 | 0.0 | 0.0 | 19952 | 26.5500 | E12 | S | 3 | NaN | New York, NY |
| 6 | 1.0 | 1.0 | Andrews, Miss. Kornelia Theodosia | female | 63.0000 | 1.0 | 0.0 | 13502 | 77.9583 | D7 | S | 10 | NaN | Hudson, NY |
| 7 | 1.0 | 0.0 | Andrews, Mr. Thomas Jr | male | 39.0000 | 0.0 | 0.0 | 112050 | 0.0000 | A36 | S | NaN | NaN | Belfast, NI |
| 8 | 1.0 | 1.0 | Appleton, Mrs. Edward Dale (Charlotte Lamson) | female | 53.0000 | 2.0 | 0.0 | 11769 | 51.4792 | C101 | S | D | NaN | Bayside, Queens, NY |
| 9 | 1.0 | 0.0 | Artagaveytia, Mr. Ramon | male | 71.0000 | 0.0 | 0.0 | PC 17609 | 49.5042 | NaN | C | NaN | 22.0 | Montevideo, Uruguay |
| 10 | 1.0 | 0.0 | Astor, Col. John Jacob | male | 47.0000 | 1.0 | 0.0 | PC 17757 | 227.5250 | C62 C64 | C | NaN | 124.0 | New York, NY |
| 11 | 1.0 | 1.0 | Astor, Mrs. John Jacob (Madeleine Talmadge Force) | female | 18.0000 | 1.0 | 0.0 | PC 17757 | 227.5250 | C62 C64 | C | 4 | NaN | New York, NY |
| 12 | 1.0 | 1.0 | Aubart, Mme. Leontine Pauline | female | 24.0000 | 0.0 | 0.0 | PC 17477 | 69.3000 | B35 | C | 9 | NaN | Paris, France |
| 13 | 1.0 | 1.0 | Barber, Miss. Ellen "Nellie" | female | 26.0000 | 0.0 | 0.0 | 19877 | 78.8500 | NaN | S | 6 | NaN | NaN |
| 14 | 1.0 | 1.0 | Barkworth, Mr. Algernon Henry Wilson | male | 80.0000 | 0.0 | 0.0 | 27042 | 30.0000 | A23 | S | B | NaN | Hessle, Yorks |
| 15 | 1.0 | 0.0 | Baumann, Mr. John D | male | NaN | 0.0 | 0.0 | PC 17318 | 25.9250 | NaN | S | NaN | NaN | New York, NY |
| 16 | 1.0 | 0.0 | Baxter, Mr. Quigg Edmond | male | 24.0000 | 0.0 | 1.0 | PC 17558 | 247.5208 | B58 B60 | C | NaN | NaN | Montreal, PQ |
| 17 | 1.0 | 1.0 | Baxter, Mrs. James (Helene DeLaudeniere Chaput) | female | 50.0000 | 0.0 | 1.0 | PC 17558 | 247.5208 | B58 B60 | C | 6 | NaN | Montreal, PQ |
| 18 | 1.0 | 1.0 | Bazzani, Miss. Albina | female | 32.0000 | 0.0 | 0.0 | 11813 | 76.2917 | D15 | C | 8 | NaN | NaN |
| 19 | 1.0 | 0.0 | Beattie, Mr. Thomson | male | 36.0000 | 0.0 | 0.0 | 13050 | 75.2417 | C6 | C | A | NaN | Winnipeg, MN |
In [9]:
Copied!
df.tail(25)
df.tail(25)
Out[9]:
| pclass | survived | name | sex | age | sibsp | parch | ticket | fare | cabin | embarked | boat | body | home.dest | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1285 | 3.0 | 0.0 | Wenzel, Mr. Linhart | male | 32.5 | 0.0 | 0.0 | 345775 | 9.5000 | NaN | S | NaN | 298.0 | NaN |
| 1286 | 3.0 | 1.0 | Whabee, Mrs. George Joseph (Shawneene Abi-Saab) | female | 38.0 | 0.0 | 0.0 | 2688 | 7.2292 | NaN | C | C | NaN | NaN |
| 1287 | 3.0 | 0.0 | Widegren, Mr. Carl/Charles Peter | male | 51.0 | 0.0 | 0.0 | 347064 | 7.7500 | NaN | S | NaN | NaN | NaN |
| 1288 | 3.0 | 0.0 | Wiklund, Mr. Jakob Alfred | male | 18.0 | 1.0 | 0.0 | 3101267 | 6.4958 | NaN | S | NaN | 314.0 | NaN |
| 1289 | 3.0 | 0.0 | Wiklund, Mr. Karl Johan | male | 21.0 | 1.0 | 0.0 | 3101266 | 6.4958 | NaN | S | NaN | NaN | NaN |
| 1290 | 3.0 | 1.0 | Wilkes, Mrs. James (Ellen Needs) | female | 47.0 | 1.0 | 0.0 | 363272 | 7.0000 | NaN | S | NaN | NaN | NaN |
| 1291 | 3.0 | 0.0 | Willer, Mr. Aaron ("Abi Weller") | male | NaN | 0.0 | 0.0 | 3410 | 8.7125 | NaN | S | NaN | NaN | NaN |
| 1292 | 3.0 | 0.0 | Willey, Mr. Edward | male | NaN | 0.0 | 0.0 | S.O./P.P. 751 | 7.5500 | NaN | S | NaN | NaN | NaN |
| 1293 | 3.0 | 0.0 | Williams, Mr. Howard Hugh "Harry" | male | NaN | 0.0 | 0.0 | A/5 2466 | 8.0500 | NaN | S | NaN | NaN | NaN |
| 1294 | 3.0 | 0.0 | Williams, Mr. Leslie | male | 28.5 | 0.0 | 0.0 | 54636 | 16.1000 | NaN | S | NaN | 14.0 | NaN |
| 1295 | 3.0 | 0.0 | Windelov, Mr. Einar | male | 21.0 | 0.0 | 0.0 | SOTON/OQ 3101317 | 7.2500 | NaN | S | NaN | NaN | NaN |
| 1296 | 3.0 | 0.0 | Wirz, Mr. Albert | male | 27.0 | 0.0 | 0.0 | 315154 | 8.6625 | NaN | S | NaN | 131.0 | NaN |
| 1297 | 3.0 | 0.0 | Wiseman, Mr. Phillippe | male | NaN | 0.0 | 0.0 | A/4. 34244 | 7.2500 | NaN | S | NaN | NaN | NaN |
| 1298 | 3.0 | 0.0 | Wittevrongel, Mr. Camille | male | 36.0 | 0.0 | 0.0 | 345771 | 9.5000 | NaN | S | NaN | NaN | NaN |
| 1299 | 3.0 | 0.0 | Yasbeck, Mr. Antoni | male | 27.0 | 1.0 | 0.0 | 2659 | 14.4542 | NaN | C | C | NaN | NaN |
| 1300 | 3.0 | 1.0 | Yasbeck, Mrs. Antoni (Selini Alexander) | female | 15.0 | 1.0 | 0.0 | 2659 | 14.4542 | NaN | C | NaN | NaN | NaN |
| 1301 | 3.0 | 0.0 | Youseff, Mr. Gerious | male | 45.5 | 0.0 | 0.0 | 2628 | 7.2250 | NaN | C | NaN | 312.0 | NaN |
| 1302 | 3.0 | 0.0 | Yousif, Mr. Wazli | male | NaN | 0.0 | 0.0 | 2647 | 7.2250 | NaN | C | NaN | NaN | NaN |
| 1303 | 3.0 | 0.0 | Yousseff, Mr. Gerious | male | NaN | 0.0 | 0.0 | 2627 | 14.4583 | NaN | C | NaN | NaN | NaN |
| 1304 | 3.0 | 0.0 | Zabour, Miss. Hileni | female | 14.5 | 1.0 | 0.0 | 2665 | 14.4542 | NaN | C | NaN | 328.0 | NaN |
| 1305 | 3.0 | 0.0 | Zabour, Miss. Thamine | female | NaN | 1.0 | 0.0 | 2665 | 14.4542 | NaN | C | NaN | NaN | NaN |
| 1306 | 3.0 | 0.0 | Zakarian, Mr. Mapriededer | male | 26.5 | 0.0 | 0.0 | 2656 | 7.2250 | NaN | C | NaN | 304.0 | NaN |
| 1307 | 3.0 | 0.0 | Zakarian, Mr. Ortin | male | 27.0 | 0.0 | 0.0 | 2670 | 7.2250 | NaN | C | NaN | NaN | NaN |
| 1308 | 3.0 | 0.0 | Zimmerman, Mr. Leo | male | 29.0 | 0.0 | 0.0 | 315082 | 7.8750 | NaN | S | NaN | NaN | NaN |
| 1309 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
Obserwacje¶
- Najwięcej brakujących elementów dateframe znajduje się w kolumnie body
- Najwięcej unikatowych wartości jest w Name, jest spowodowane połączeniem Imienia oraz nazwiska w jednej kolumnie
- Średni wiek na wszystkicj uczestników to 29,88 lat
- Ostatni rekord z dateframe nic nie wniesie do anilizy zostastanie usunięt na brak danych wkażdej kolumnie
- Średnia cena biletów bez uwzględnia rodzaju wykupionej klasy to 33,30
Analiza dataframe po różnych kryteriach¶
In [10]:
Copied!
df['survived'].value_counts()
df['survived'].value_counts()
Out[10]:
0.0 809 1.0 500 Name: survived, dtype: int64
In [11]:
Copied!
df['sex'].value_counts()
df['sex'].value_counts()
Out[11]:
male 843 female 466 Name: sex, dtype: int64
Obserwacje¶
- Z podanych danych na 1309 osób płynących Titanic'iem przeżyło 500 osób
- Mężczyzn było prawie 2x więcej
In [12]:
Copied!
df_female = df[df["sex"] == "female"]
df_female.describe()
df_female = df[df["sex"] == "female"]
df_female.describe()
Out[12]:
| pclass | survived | age | sibsp | parch | fare | body | |
|---|---|---|---|---|---|---|---|
| count | 466.000000 | 466.000000 | 388.000000 | 466.000000 | 466.000000 | 466.000000 | 8.000000 |
| mean | 2.154506 | 0.727468 | 28.687071 | 0.652361 | 0.633047 | 46.198097 | 166.625000 |
| std | 0.866181 | 0.445741 | 14.576995 | 1.101009 | 1.049579 | 63.292599 | 138.110657 |
| min | 1.000000 | 0.000000 | 0.166700 | 0.000000 | 0.000000 | 6.750000 | 7.000000 |
| 25% | 1.000000 | 0.000000 | 19.000000 | 0.000000 | 0.000000 | 10.504175 | 52.750000 |
| 50% | 2.000000 | 1.000000 | 27.000000 | 0.000000 | 0.000000 | 23.000000 | 133.500000 |
| 75% | 3.000000 | 1.000000 | 38.000000 | 1.000000 | 1.000000 | 55.331275 | 306.000000 |
| max | 3.000000 | 1.000000 | 76.000000 | 8.000000 | 9.000000 | 512.329200 | 328.000000 |
Obserwacje¶
- Średnia wieku paseżerek Titanic'a to 29 lat
- Najstarsza miała 76lat
- Cena bieletów dla wszytkich kobiet średnio wynosiła 46,20
- Standardowe odhylenie dla cen biletów jest znacznie wyższe niż średnia
In [13]:
Copied!
df_male = df[df["sex"] == "male"]
df_male.describe()
df_male = df[df["sex"] == "male"]
df_male.describe()
Out[13]:
| pclass | survived | age | sibsp | parch | fare | body | |
|---|---|---|---|---|---|---|---|
| count | 843.000000 | 843.000000 | 658.000000 | 843.000000 | 843.000000 | 842.000000 | 113.000000 |
| mean | 2.372479 | 0.190985 | 30.585233 | 0.413998 | 0.247924 | 26.154601 | 160.398230 |
| std | 0.811908 | 0.393310 | 14.280571 | 0.997928 | 0.708938 | 42.486877 | 95.035289 |
| min | 1.000000 | 0.000000 | 0.333300 | 0.000000 | 0.000000 | 0.000000 | 1.000000 |
| 25% | 2.000000 | 0.000000 | 21.000000 | 0.000000 | 0.000000 | 7.876050 | 79.000000 |
| 50% | 3.000000 | 0.000000 | 28.000000 | 0.000000 | 0.000000 | 11.887500 | 155.000000 |
| 75% | 3.000000 | 0.000000 | 39.000000 | 1.000000 | 0.000000 | 26.550000 | 255.000000 |
| max | 3.000000 | 1.000000 | 80.000000 | 8.000000 | 9.000000 | 512.329200 | 322.000000 |
Obserwacje¶
- Średnia wieku dla mężczyzn jest około 2 lata większa niż u kobiet
- Ceny biletów dla Panów były 20 tańsze
- Odchylenie standardowe dla ceny również jest większe tak jak u kobiet
- Najdroższe bilety były po 512,33
In [14]:
Copied!
df['pclass'].value_counts()
df['pclass'].value_counts()
Out[14]:
3.0 709 1.0 323 2.0 277 Name: pclass, dtype: int64
Obserwacje¶
- Najwięcej pasażerów było 3 klassy
In [15]:
Copied!
df2 = df.copy()
df2['age'].fillna(df2['age'].mean(), inplace=True)
df2
df2 = df.copy()
df2['age'].fillna(df2['age'].mean(), inplace=True)
df2
Out[15]:
| pclass | survived | name | sex | age | sibsp | parch | ticket | fare | cabin | embarked | boat | body | home.dest | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 1.0 | 1.0 | Allen, Miss. Elisabeth Walton | female | 29.000000 | 0.0 | 0.0 | 24160 | 211.3375 | B5 | S | 2 | NaN | St Louis, MO |
| 1 | 1.0 | 1.0 | Allison, Master. Hudson Trevor | male | 0.916700 | 1.0 | 2.0 | 113781 | 151.5500 | C22 C26 | S | 11 | NaN | Montreal, PQ / Chesterville, ON |
| 2 | 1.0 | 0.0 | Allison, Miss. Helen Loraine | female | 2.000000 | 1.0 | 2.0 | 113781 | 151.5500 | C22 C26 | S | NaN | NaN | Montreal, PQ / Chesterville, ON |
| 3 | 1.0 | 0.0 | Allison, Mr. Hudson Joshua Creighton | male | 30.000000 | 1.0 | 2.0 | 113781 | 151.5500 | C22 C26 | S | NaN | 135.0 | Montreal, PQ / Chesterville, ON |
| 4 | 1.0 | 0.0 | Allison, Mrs. Hudson J C (Bessie Waldo Daniels) | female | 25.000000 | 1.0 | 2.0 | 113781 | 151.5500 | C22 C26 | S | NaN | NaN | Montreal, PQ / Chesterville, ON |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 1305 | 3.0 | 0.0 | Zabour, Miss. Thamine | female | 29.881135 | 1.0 | 0.0 | 2665 | 14.4542 | NaN | C | NaN | NaN | NaN |
| 1306 | 3.0 | 0.0 | Zakarian, Mr. Mapriededer | male | 26.500000 | 0.0 | 0.0 | 2656 | 7.2250 | NaN | C | NaN | 304.0 | NaN |
| 1307 | 3.0 | 0.0 | Zakarian, Mr. Ortin | male | 27.000000 | 0.0 | 0.0 | 2670 | 7.2250 | NaN | C | NaN | NaN | NaN |
| 1308 | 3.0 | 0.0 | Zimmerman, Mr. Leo | male | 29.000000 | 0.0 | 0.0 | 315082 | 7.8750 | NaN | S | NaN | NaN | NaN |
| 1309 | NaN | NaN | NaN | NaN | 29.881135 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
1310 rows × 14 columns
In [16]:
Copied!
df2.duplicated()
df2.duplicated()
Out[16]:
0 False
1 False
2 False
3 False
4 False
...
1305 False
1306 False
1307 False
1308 False
1309 False
Length: 1310, dtype: bool
In [17]:
Copied!
df2 = df2.drop(df2.index[-1])
df2 = df2.drop(df2.index[-1])
In [18]:
Copied!
df2.tail(15)
df2.tail(15)
Out[18]:
| pclass | survived | name | sex | age | sibsp | parch | ticket | fare | cabin | embarked | boat | body | home.dest | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1294 | 3.0 | 0.0 | Williams, Mr. Leslie | male | 28.500000 | 0.0 | 0.0 | 54636 | 16.1000 | NaN | S | NaN | 14.0 | NaN |
| 1295 | 3.0 | 0.0 | Windelov, Mr. Einar | male | 21.000000 | 0.0 | 0.0 | SOTON/OQ 3101317 | 7.2500 | NaN | S | NaN | NaN | NaN |
| 1296 | 3.0 | 0.0 | Wirz, Mr. Albert | male | 27.000000 | 0.0 | 0.0 | 315154 | 8.6625 | NaN | S | NaN | 131.0 | NaN |
| 1297 | 3.0 | 0.0 | Wiseman, Mr. Phillippe | male | 29.881135 | 0.0 | 0.0 | A/4. 34244 | 7.2500 | NaN | S | NaN | NaN | NaN |
| 1298 | 3.0 | 0.0 | Wittevrongel, Mr. Camille | male | 36.000000 | 0.0 | 0.0 | 345771 | 9.5000 | NaN | S | NaN | NaN | NaN |
| 1299 | 3.0 | 0.0 | Yasbeck, Mr. Antoni | male | 27.000000 | 1.0 | 0.0 | 2659 | 14.4542 | NaN | C | C | NaN | NaN |
| 1300 | 3.0 | 1.0 | Yasbeck, Mrs. Antoni (Selini Alexander) | female | 15.000000 | 1.0 | 0.0 | 2659 | 14.4542 | NaN | C | NaN | NaN | NaN |
| 1301 | 3.0 | 0.0 | Youseff, Mr. Gerious | male | 45.500000 | 0.0 | 0.0 | 2628 | 7.2250 | NaN | C | NaN | 312.0 | NaN |
| 1302 | 3.0 | 0.0 | Yousif, Mr. Wazli | male | 29.881135 | 0.0 | 0.0 | 2647 | 7.2250 | NaN | C | NaN | NaN | NaN |
| 1303 | 3.0 | 0.0 | Yousseff, Mr. Gerious | male | 29.881135 | 0.0 | 0.0 | 2627 | 14.4583 | NaN | C | NaN | NaN | NaN |
| 1304 | 3.0 | 0.0 | Zabour, Miss. Hileni | female | 14.500000 | 1.0 | 0.0 | 2665 | 14.4542 | NaN | C | NaN | 328.0 | NaN |
| 1305 | 3.0 | 0.0 | Zabour, Miss. Thamine | female | 29.881135 | 1.0 | 0.0 | 2665 | 14.4542 | NaN | C | NaN | NaN | NaN |
| 1306 | 3.0 | 0.0 | Zakarian, Mr. Mapriededer | male | 26.500000 | 0.0 | 0.0 | 2656 | 7.2250 | NaN | C | NaN | 304.0 | NaN |
| 1307 | 3.0 | 0.0 | Zakarian, Mr. Ortin | male | 27.000000 | 0.0 | 0.0 | 2670 | 7.2250 | NaN | C | NaN | NaN | NaN |
| 1308 | 3.0 | 0.0 | Zimmerman, Mr. Leo | male | 29.000000 | 0.0 | 0.0 | 315082 | 7.8750 | NaN | S | NaN | NaN | NaN |
In [19]:
Copied!
df2.describe()
df2.describe()
Out[19]:
| pclass | survived | age | sibsp | parch | fare | body | |
|---|---|---|---|---|---|---|---|
| count | 1309.000000 | 1309.000000 | 1309.000000 | 1309.000000 | 1309.000000 | 1308.000000 | 121.000000 |
| mean | 2.294882 | 0.381971 | 29.881135 | 0.498854 | 0.385027 | 33.295479 | 160.809917 |
| std | 0.837836 | 0.486055 | 12.883199 | 1.041658 | 0.865560 | 51.758668 | 97.696922 |
| min | 1.000000 | 0.000000 | 0.166700 | 0.000000 | 0.000000 | 0.000000 | 1.000000 |
| 25% | 2.000000 | 0.000000 | 22.000000 | 0.000000 | 0.000000 | 7.895800 | 72.000000 |
| 50% | 3.000000 | 0.000000 | 29.881135 | 0.000000 | 0.000000 | 14.454200 | 155.000000 |
| 75% | 3.000000 | 1.000000 | 35.000000 | 1.000000 | 0.000000 | 31.275000 | 256.000000 |
| max | 3.000000 | 1.000000 | 80.000000 | 8.000000 | 9.000000 | 512.329200 | 328.000000 |
In [23]:
Copied!
df2_female = df2[df2["sex"] == "female"]
df2_female.describe()
df2_female = df2[df2["sex"] == "female"]
df2_female.describe()
Out[23]:
| pclass | survived | age | sibsp | parch | fare | body | |
|---|---|---|---|---|---|---|---|
| count | 466.000000 | 466.000000 | 466.000000 | 466.000000 | 466.000000 | 466.000000 | 8.000000 |
| mean | 2.154506 | 0.727468 | 28.886935 | 0.652361 | 0.633047 | 46.198097 | 166.625000 |
| std | 0.866181 | 0.445741 | 13.305812 | 1.101009 | 1.049579 | 63.292599 | 138.110657 |
| min | 1.000000 | 0.000000 | 0.166700 | 0.000000 | 0.000000 | 6.750000 | 7.000000 |
| 25% | 1.000000 | 0.000000 | 21.000000 | 0.000000 | 0.000000 | 10.504175 | 52.750000 |
| 50% | 2.000000 | 1.000000 | 29.881135 | 0.000000 | 0.000000 | 23.000000 | 133.500000 |
| 75% | 3.000000 | 1.000000 | 35.000000 | 1.000000 | 1.000000 | 55.331275 | 306.000000 |
| max | 3.000000 | 1.000000 | 76.000000 | 8.000000 | 9.000000 | 512.329200 | 328.000000 |
In [25]:
Copied!
df2_male = df2[df2["sex"] == "male"]
df2_male.describe()
df2_male = df2[df2["sex"] == "male"]
df2_male.describe()
Out[25]:
| pclass | survived | age | sibsp | parch | fare | body | |
|---|---|---|---|---|---|---|---|
| count | 843.000000 | 843.000000 | 843.000000 | 843.000000 | 843.000000 | 842.000000 | 113.000000 |
| mean | 2.372479 | 0.190985 | 30.430716 | 0.413998 | 0.247924 | 26.154601 | 160.398230 |
| std | 0.811908 | 0.393310 | 12.617933 | 0.997928 | 0.708938 | 42.486877 | 95.035289 |
| min | 1.000000 | 0.000000 | 0.333300 | 0.000000 | 0.000000 | 0.000000 | 1.000000 |
| 25% | 2.000000 | 0.000000 | 24.000000 | 0.000000 | 0.000000 | 7.876050 | 79.000000 |
| 50% | 3.000000 | 0.000000 | 29.881135 | 0.000000 | 0.000000 | 11.887500 | 155.000000 |
| 75% | 3.000000 | 0.000000 | 35.000000 | 1.000000 | 0.000000 | 26.550000 | 255.000000 |
| max | 3.000000 | 1.000000 | 80.000000 | 8.000000 | 9.000000 | 512.329200 | 322.000000 |
Obserwacje¶
- Po podstawieniu średniej zamiast brakujących wartości średnia u mężczyzn w wieku zmieniła się z 30.585233 na 30,430716
- Odchylenie standardowe spadło około 2 laTA
- U płuci pięknej średnia się zwiększyła o 0,2lata
In [28]:
Copied!
df2['sex'].value_counts().plot( kind = 'bar',
title = 'Liczba osób podzielone na płucie',
xlabel = 'Płucie',
ylabel = "Liczba osób",
grid = True)
df2['sex'].value_counts().plot( kind = 'bar',
title = 'Liczba osób podzielone na płucie',
xlabel = 'Płucie',
ylabel = "Liczba osób",
grid = True)
Out[28]:
<Axes: title={'center': 'Liczba osób podzielone na płucie'}, xlabel='Płucie', ylabel='Liczba osób'>
Obserwacje¶
- Na Tytanicu płynęło 2x więcej mężczyzn, niż kobiet
In [32]:
Copied!
import matplotlib.pyplot as plt
import seaborn as sns
correlation_matrix = df2.corr()
plt.figure(figsize=(10, 8))
sns.heatmap(correlation_matrix, annot=True, fmt=".2f", cmap='coolwarm', cbar=True)
plt.title('Correlation Matrix')
plt.tight_layout()
import matplotlib.pyplot as plt
import seaborn as sns
correlation_matrix = df2.corr()
plt.figure(figsize=(10, 8))
sns.heatmap(correlation_matrix, annot=True, fmt=".2f", cmap='coolwarm', cbar=True)
plt.title('Correlation Matrix')
plt.tight_layout()
C:\Users\spaid\AppData\Local\Temp\ipykernel_19804\498816730.py:4: FutureWarning: The default value of numeric_only in DataFrame.corr is deprecated. In a future version, it will default to False. Select only valid columns or specify the value of numeric_only to silence this warning. correlation_matrix = df2.corr()
Obserwacja¶
- Zewzględu dwukrotnie większą ilość mężczyzna zależności kolaracja nie zachodzi idealnie
In [34]:
Copied!
survivalBySex = df2.groupby('sex')['survived'].mean()
plt.figure(figsize=(8, 6))
survivalBySex.plot(kind='bar', color=['darkblue', 'pink'])
plt.title('Osoby które przeżyły katastrofę')
plt.xlabel('Płucie')
plt.ylabel('Wskaźnik przeżycia')
plt.xticks(rotation=0)
plt.ylim(0, 1)
plt.grid(True)
survivalBySex = df2.groupby('sex')['survived'].mean()
plt.figure(figsize=(8, 6))
survivalBySex.plot(kind='bar', color=['darkblue', 'pink'])
plt.title('Osoby które przeżyły katastrofę')
plt.xlabel('Płucie')
plt.ylabel('Wskaźnik przeżycia')
plt.xticks(rotation=0)
plt.ylim(0, 1)
plt.grid(True)
Obeserwacje¶
- Z powyższego wykresu więcej mężczyzn przyżyło zatonięcie Tytanica, pradopodobnie jest to spowodawane zasadami ilością ich na statku
In [37]:
Copied!
plt.figure(figsize=(10, 6))
plt.hist(df2['age'].dropna(), bins= 10, color = 'darkblue', edgecolor='black')
plt.title('Histogram Wieku')
plt.xlabel('Wiek')
plt.ylabel('Częstotliwość')
plt.grid(True)
plt.figure(figsize=(10, 6))
plt.hist(df2['age'].dropna(), bins= 10, color = 'darkblue', edgecolor='black')
plt.title('Histogram Wieku')
plt.xlabel('Wiek')
plt.ylabel('Częstotliwość')
plt.grid(True)
Obeserwacje¶
- Najwięcekj osób było w wieku z przedziału 24-32
- Na statku było bardzo mało osón powyżej 65 roku życia
- Na Tytanicu również płyneły dzieci w wieku od kliku tygodni życia do 18 roku
In [38]:
Copied!
df3 = df2.dropna(subset=['survived', 'age'])
plt.figure(figsize=(10, 6))
for survival_status in df3['survived'].unique():
subset = df3[df3['survived'] == survival_status]
plt.hist(subset['age'], bins=20, alpha=0.5, label=f'Survived: {int(survival_status)}')
plt.title('Histogram przeżycia katastrofy według wieku')
plt.xlabel('Wiek')
plt.ylabel('Liść próbek')
plt.legend(title='Przertwało', labels=['Nie', 'Tak'])
plt.grid(True)
df3 = df2.dropna(subset=['survived', 'age'])
plt.figure(figsize=(10, 6))
for survival_status in df3['survived'].unique():
subset = df3[df3['survived'] == survival_status]
plt.hist(subset['age'], bins=20, alpha=0.5, label=f'Survived: {int(survival_status)}')
plt.title('Histogram przeżycia katastrofy według wieku')
plt.xlabel('Wiek')
plt.ylabel('Liść próbek')
plt.legend(title='Przertwało', labels=['Nie', 'Tak'])
plt.grid(True)
Obserwacje¶
- Najwięcej przeżyło katastrofę Tytanica w wieku 30-36 lat
- Najwiękasz ilość osób które zgineła to osyby około 30lat
- Dzieci z przedziału 0-7 lat mają większą ilość śmierci
In [40]:
Copied!
plt.figure(figsize=(10, 6))
df2[['fare', 'age']].boxplot()
plt.title('Analiza wartości odstających dla opłaty i wieku')
plt.ylabel('Wartości')
plt.figure(figsize=(10, 6))
df2[['fare', 'age']].boxplot()
plt.title('Analiza wartości odstających dla opłaty i wieku')
plt.ylabel('Wartości')
Out[40]:
Text(0, 0.5, 'Wartości')
Obserwacje¶
- Jak widać na wykres bardzo dużo odstających wartości może zniekształcić anilizę
Wnioski¶
- Na początku dateframe zawieram bardzo dużo brakujących danych co spowodowało spłycenie analizy i zniekształce ogólnej oceny
- Przyżywalność osób płynących na Tytanicu była zależna od wykupionej klasy oraz wieku Jest to spowodowane Hierachią społeczną, a następnie kolejnością ratowania (płeć, dzieci itd)
- Na Tytanicu przeżyło więcej mężczyzn, aczkowliek jest spowodowane znacznie większą ilością płynących osób płci męskiej
In [ ]:
Copied!