diff --git a/Pipfile b/Pipfile new file mode 100644 index 00000000..8148c74e --- /dev/null +++ b/Pipfile @@ -0,0 +1,16 @@ +[[source]] +name = "pypi" +url = "https://pypi.org/simple" +verify_ssl = true + +[dev-packages] + +[packages] +pandas = "*" +psycopg2-binary = "*" +pymongo = "*" +dnspython = "*" +sqlalchemy = "*" + +[requires] +python_version = "3.8" diff --git a/Pipfile.lock b/Pipfile.lock new file mode 100644 index 00000000..bc0de832 --- /dev/null +++ b/Pipfile.lock @@ -0,0 +1,236 @@ +{ + "_meta": { + "hash": { + "sha256": "3111b362e03141ed1b0711bcfdca824f5b7153063b8a4aac206832b6a4161aba" + }, + "pipfile-spec": 6, + "requires": { + "python_version": "3.8" + }, + "sources": [ + { + "name": "pypi", + "url": "https://pypi.org/simple", + "verify_ssl": true + } + ] + }, + "default": { + "dnspython": { + "hashes": [ + "sha256:044af09374469c3a39eeea1a146e8cac27daec951f1f1f157b1962fc7cb9d1b7", + "sha256:40bb3c24b9d4ec12500f0124288a65df232a3aa749bb0c39734b782873a2544d" + ], + "index": "pypi", + "version": "==2.0.0" + }, + "numpy": { + "hashes": [ + "sha256:082f8d4dd69b6b688f64f509b91d482362124986d98dc7dc5f5e9f9b9c3bb983", + "sha256:1bc0145999e8cb8aed9d4e65dd8b139adf1919e521177f198529687dbf613065", + "sha256:309cbcfaa103fc9a33ec16d2d62569d541b79f828c382556ff072442226d1968", + "sha256:3673c8b2b29077f1b7b3a848794f8e11f401ba0b71c49fbd26fb40b71788b132", + "sha256:480fdd4dbda4dd6b638d3863da3be82873bba6d32d1fc12ea1b8486ac7b8d129", + "sha256:56ef7f56470c24bb67fb43dae442e946a6ce172f97c69f8d067ff8550cf782ff", + "sha256:5a936fd51049541d86ccdeef2833cc89a18e4d3808fe58a8abeb802665c5af93", + "sha256:5b6885c12784a27e957294b60f97e8b5b4174c7504665333c5e94fbf41ae5d6a", + "sha256:667c07063940e934287993366ad5f56766bc009017b4a0fe91dbd07960d0aba7", + "sha256:7ed448ff4eaffeb01094959b19cbaf998ecdee9ef9932381420d514e446601cd", + "sha256:8343bf67c72e09cfabfab55ad4a43ce3f6bf6e6ced7acf70f45ded9ebb425055", + "sha256:92feb989b47f83ebef246adabc7ff3b9a59ac30601c3f6819f8913458610bdcc", + "sha256:935c27ae2760c21cd7354402546f6be21d3d0c806fffe967f745d5f2de5005a7", + "sha256:aaf42a04b472d12515debc621c31cf16c215e332242e7a9f56403d814c744624", + "sha256:b12e639378c741add21fbffd16ba5ad25c0a1a17cf2b6fe4288feeb65144f35b", + "sha256:b1cca51512299841bf69add3b75361779962f9cee7d9ee3bb446d5982e925b69", + "sha256:b8456987b637232602ceb4d663cb34106f7eb780e247d51a260b84760fd8f491", + "sha256:b9792b0ac0130b277536ab8944e7b754c69560dac0415dd4b2dbd16b902c8954", + "sha256:c9591886fc9cbe5532d5df85cb8e0cc3b44ba8ce4367bd4cf1b93dc19713da72", + "sha256:cf1347450c0b7644ea142712619533553f02ef23f92f781312f6a3553d031fc7", + "sha256:de8b4a9b56255797cbddb93281ed92acbc510fb7b15df3f01bd28f46ebc4edae", + "sha256:e1b1dc0372f530f26a03578ac75d5e51b3868b9b76cd2facba4c9ee0eb252ab1", + "sha256:e45f8e981a0ab47103181773cc0a54e650b2aef8c7b6cd07405d0fa8d869444a", + "sha256:e4f6d3c53911a9d103d8ec9518190e52a8b945bab021745af4939cfc7c0d4a9e", + "sha256:ed8a311493cf5480a2ebc597d1e177231984c818a86875126cfd004241a73c3e", + "sha256:ef71a1d4fd4858596ae80ad1ec76404ad29701f8ca7cdcebc50300178db14dfc" + ], + "markers": "python_version >= '3.6'", + "version": "==1.19.1" + }, + "pandas": { + "hashes": [ + "sha256:0210f8fe19c2667a3817adb6de2c4fd92b1b78e1975ca60c0efa908e0985cbdb", + "sha256:0227e3a6e3a22c0e283a5041f1e3064d78fbde811217668bb966ed05386d8a7e", + "sha256:0bc440493cf9dc5b36d5d46bbd5508f6547ba68b02a28234cd8e81fdce42744d", + "sha256:16504f915f1ae424052f1e9b7cd2d01786f098fbb00fa4e0f69d42b22952d798", + "sha256:182a5aeae319df391c3df4740bb17d5300dcd78034b17732c12e62e6dd79e4a4", + "sha256:35db623487f00d9392d8af44a24516d6cb9f274afaf73cfcfe180b9c54e007d2", + "sha256:40ec0a7f611a3d00d3c666c4cceb9aa3f5bf9fbd81392948a93663064f527203", + "sha256:47a03bfef80d6812c91ed6fae43f04f2fa80a4e1b82b35aa4d9002e39529e0b8", + "sha256:4b21d46728f8a6be537716035b445e7ef3a75dbd30bd31aa1b251323219d853e", + "sha256:4d1a806252001c5db7caecbe1a26e49a6c23421d85a700960f6ba093112f54a1", + "sha256:60e20a4ab4d4fec253557d0fc9a4e4095c37b664f78c72af24860c8adcd07088", + "sha256:9f61cca5262840ff46ef857d4f5f65679b82188709d0e5e086a9123791f721c8", + "sha256:a15835c8409d5edc50b4af93be3377b5dd3eb53517e7f785060df1f06f6da0e2", + "sha256:b39508562ad0bb3f384b0db24da7d68a2608b9ddc85b1d931ccaaa92d5e45273", + "sha256:ed60848caadeacecefd0b1de81b91beff23960032cded0ac1449242b506a3b3f", + "sha256:fc714895b6de6803ac9f661abb316853d0cd657f5d23985222255ad76ccedc25" + ], + "index": "pypi", + "version": "==1.1.0" + }, + "psycopg2-binary": { + "hashes": [ + "sha256:008da3ab51adc70a5f1cfbbe5db3a22607ab030eb44bcecf517ad11a0c2b3cac", + "sha256:07cf82c870ec2d2ce94d18e70c13323c89f2f2a2628cbf1feee700630be2519a", + "sha256:08507efbe532029adee21b8d4c999170a83760d38249936038bd0602327029b5", + "sha256:107d9be3b614e52a192719c6bf32e8813030020ea1d1215daa86ded9a24d8b04", + "sha256:17a0ea0b0eabf07035e5e0d520dabc7950aeb15a17c6d36128ba99b2721b25b1", + "sha256:3286541b9d85a340ee4ed42732d15fc1bb441dc500c97243a768154ab8505bb5", + "sha256:3939cf75fc89c5e9ed836e228c4a63604dff95ad19aed2bbf71d5d04c15ed5ce", + "sha256:40abc319f7f26c042a11658bf3dd3b0b3bceccf883ec1c565d5c909a90204434", + "sha256:51f7823f1b087d2020d8e8c9e6687473d3d239ba9afc162d9b2ab6e80b53f9f9", + "sha256:6bb2dd006a46a4a4ce95201f836194eb6a1e863f69ee5bab506673e0ca767057", + "sha256:702f09d8f77dc4794651f650828791af82f7c2efd8c91ae79e3d9fe4bb7d4c98", + "sha256:7036ccf715925251fac969f4da9ad37e4b7e211b1e920860148a10c0de963522", + "sha256:7b832d76cc65c092abd9505cc670c4e3421fd136fb6ea5b94efbe4c146572505", + "sha256:8f74e631b67482d504d7e9cf364071fc5d54c28e79a093ff402d5f8f81e23bfa", + "sha256:930315ac53dc65cbf52ab6b6d27422611f5fb461d763c531db229c7e1af6c0b3", + "sha256:96d3038f5bd061401996614f65d27a4ecb62d843eb4f48e212e6d129171a721f", + "sha256:a20299ee0ea2f9cca494396ac472d6e636745652a64a418b39522c120fd0a0a4", + "sha256:a34826d6465c2e2bbe9d0605f944f19d2480589f89863ed5f091943be27c9de4", + "sha256:a69970ee896e21db4c57e398646af9edc71c003bc52a3cc77fb150240fefd266", + "sha256:b9a8b391c2b0321e0cd7ec6b4cfcc3dd6349347bd1207d48bcb752aa6c553a66", + "sha256:ba13346ff6d3eb2dca0b6fa0d8a9d999eff3dcd9b55f3a890f12b0b6362b2b38", + "sha256:bb0608694a91db1e230b4a314e8ed00ad07ed0c518f9a69b83af2717e31291a3", + "sha256:c8830b7d5f16fd79d39b21e3d94f247219036b29b30c8270314c46bf8b732389", + "sha256:cac918cd7c4c498a60f5d2a61d4f0a6091c2c9490d81bc805c963444032d0dab", + "sha256:cc30cb900f42c8a246e2cb76539d9726f407330bc244ca7729c41a44e8d807fb", + "sha256:ccdc6a87f32b491129ada4b87a43b1895cf2c20fdb7f98ad979647506ffc41b6", + "sha256:d1a8b01f6a964fec702d6b6dac1f91f2b9f9fe41b310cbb16c7ef1fac82df06d", + "sha256:e004db88e5a75e5fdab1620fb9f90c9598c2a195a594225ac4ed2a6f1c23e162", + "sha256:eb2f43ae3037f1ef5e19339c41cf56947021ac892f668765cd65f8ab9814192e", + "sha256:fa466306fcf6b39b8a61d003123d442b23707d635a5cb05ac4e1b62cc79105cd" + ], + "index": "pypi", + "version": "==2.8.5" + }, + "pymongo": { + "hashes": [ + "sha256:03dc64a9aa7a5d405aea5c56db95835f6a2fa31b3502c5af1760e0e99210be30", + "sha256:05fcc6f9c60e6efe5219fbb5a30258adb3d3e5cbd317068f3d73c09727f2abb6", + "sha256:076a7f2f7c251635cf6116ac8e45eefac77758ee5a77ab7bd2f63999e957613b", + "sha256:137e6fa718c7eff270dbd2fc4b90d94b1a69c9e9eb3f3de9e850a7fd33c822dc", + "sha256:1f865b1d1c191d785106f54df9abdc7d2f45a946b45fd1ea0a641b4f982a2a77", + "sha256:213c445fe7e654621c6309e874627c35354b46ef3ee807f5a1927dc4b30e1a67", + "sha256:25e617daf47d8dfd4e152c880cd0741cbdb48e51f54b8de9ddbfe74ecd87dd16", + "sha256:3d9bb1ba935a90ec4809a8031efd988bdb13cdba05d9e9a3e9bf151bf759ecde", + "sha256:40696a9a53faa7d85aaa6fd7bef1cae08f7882640bad08c350fb59dee7ad069b", + "sha256:421aa1b92c291c429668bd8d8d8ec2bd00f183483a756928e3afbf2b6f941f00", + "sha256:4437300eb3a5e9cc1a73b07d22c77302f872f339caca97e9bf8cf45eca8fa0d2", + "sha256:455f4deb00158d5ec8b1d3092df6abb681b225774ab8a59b3510293b4c8530e3", + "sha256:475a34a0745c456ceffaec4ce86b7e0983478f1b6140890dff7b161e7bcd895b", + "sha256:4797c0080f41eba90404335e5ded3aa66731d303293a675ff097ce4ea3025bb9", + "sha256:4ae23fbbe9eadf61279a26eba866bbf161a6f7e2ffad14a42cf20e9cb8e94166", + "sha256:4b32744901ee9990aa8cd488ec85634f443526def1e5190a407dc107148249d7", + "sha256:50127b13b38e8e586d5e97d342689405edbd74ad0bd891d97ee126a8c7b6e45f", + "sha256:50531caa7b4be1c4ed5e2d5793a4e51cc9bd62a919a6fd3299ef7c902e206eab", + "sha256:63a5387e496a98170ffe638b435c0832c0f2011a6f4ff7a2880f17669fff8c03", + "sha256:68220b81850de8e966d4667d5c325a96c6ac0d6adb3d18935d6e3d325d441f48", + "sha256:689142dc0c150e9cb7c012d84cac2c346d40beb891323afb6caf18ec4caafae0", + "sha256:6a15e2bee5c4188369a87ed6f02de804651152634a46cca91966a11c8abd2550", + "sha256:7122ffe597b531fb065d3314e704a6fe152b81820ca5f38543e70ffcc95ecfd4", + "sha256:7307024b18266b302f4265da84bb1effb5d18999ef35b30d17592959568d5c0a", + "sha256:7a4a6f5b818988a3917ec4baa91d1143242bdfece8d38305020463955961266a", + "sha256:83c5a3ecd96a9f3f11cfe6dfcbcec7323265340eb24cc996acaecea129865a3a", + "sha256:890b0f1e18dbd898aeb0ab9eae1ab159c6bcbe87f0abb065b0044581d8614062", + "sha256:8deda1f7b4c03242f2a8037706d9584e703f3d8c74d6d9cac5833db36fe16c42", + "sha256:8ea13d0348b4c96b437d944d7068d59ed4a6c98aaa6c40d8537a2981313f1c66", + "sha256:91e96bf85b7c07c827d339a386e8a3cf2e90ef098c42595227f729922d0851df", + "sha256:96782ebb3c9e91e174c333208b272ea144ed2a684413afb1038e3b3342230d72", + "sha256:9755c726aa6788f076114dfdc03b92b03ff8860316cca00902cce88bcdb5fedd", + "sha256:9dbab90c348c512e03f146e93a5e2610acec76df391043ecd46b6b775d5397e6", + "sha256:9ee0eef254e340cc11c379f797af3977992a7f2c176f1a658740c94bf677e13c", + "sha256:9fc17fdac8f1973850d42e51e8ba6149d93b1993ed6768a24f352f926dd3d587", + "sha256:a2787319dc69854acdfd6452e6a8ba8f929aeb20843c7f090e04159fc18e6245", + "sha256:b7c522292407fa04d8195032493aac937e253ad9ae524aab43b9d9d242571f03", + "sha256:bd312794f51e37dcf77f013d40650fe4fbb211dd55ef2863839c37480bd44369", + "sha256:c0d660a186e36c526366edf8a64391874fe53cf8b7039224137aee0163c046df", + "sha256:c4869141e20769b65d2d72686e7a7eb141ce9f3168106bed3e7dcced54eb2422", + "sha256:cc4057f692ac35bbe82a0a908d42ce3a281c9e913290fac37d7fa3bd01307dfb", + "sha256:cccf1e7806f12300e3a3b48f219e111000c2538483e85c869c35c1ae591e6ce9", + "sha256:ce208f80f398522e49d9db789065c8ad2cd37b21bd6b23d30053474b7416af11", + "sha256:d0565481dc196986c484a7fb13214fc6402201f7fb55c65fd215b3324962fe6c", + "sha256:d1b3366329c45a474b3bbc9b9c95d4c686e03f35da7fd12bc144626d1f2a7c04", + "sha256:d226e0d4b9192d95079a9a29c04dd81816b1ce8903b8c174a39224fe978547cb", + "sha256:d38b35f6eef4237b1d0d8e845fc1546dad85c55eba447e28c211da8c7ef9697c", + "sha256:d64c98277ea80e4484f1332ab107e8dfd173a7dcf1bdbf10a9cccc97aaab145f", + "sha256:d9de8427a5601799784eb0e7fa1b031aa64086ce04de29df775a8ca37eedac41", + "sha256:e6a15cf8f887d9f578dd49c6fb3a99d53e1d922fdd67a245a67488d77bf56eb2", + "sha256:e8c446882cbb3774cd78c738c9f58220606b702b7c1655f1423357dc51674054", + "sha256:e8d188ee39bd0ffe76603da887706e4e7b471f613625899ddf1e27867dc6a0d3", + "sha256:ef76535776c0708a85258f6dc51d36a2df12633c735f6d197ed7dfcaa7449b99", + "sha256:f6efca006a81e1197b925a7d7b16b8f61980697bb6746587aad8842865233218" + ], + "index": "pypi", + "version": "==3.11.0" + }, + "python-dateutil": { + "hashes": [ + "sha256:73ebfe9dbf22e832286dafa60473e4cd239f8592f699aa5adaf10050e6e1823c", + "sha256:75bb3f31ea686f1197762692a9ee6a7550b59fc6ca3a1f4b5d7e32fb98e2da2a" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==2.8.1" + }, + "pytz": { + "hashes": [ + "sha256:a494d53b6d39c3c6e44c3bec237336e14305e4f29bbf800b599253057fbb79ed", + "sha256:c35965d010ce31b23eeb663ed3cc8c906275d6be1a34393a1d73a41febf4a048" + ], + "version": "==2020.1" + }, + "six": { + "hashes": [ + "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259", + "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==1.15.0" + }, + "sqlalchemy": { + "hashes": [ + "sha256:0942a3a0df3f6131580eddd26d99071b48cfe5aaf3eab2783076fbc5a1c1882e", + "sha256:0ec575db1b54909750332c2e335c2bb11257883914a03bc5a3306a4488ecc772", + "sha256:109581ccc8915001e8037b73c29590e78ce74be49ca0a3630a23831f9e3ed6c7", + "sha256:16593fd748944726540cd20f7e83afec816c2ac96b082e26ae226e8f7e9688cf", + "sha256:427273b08efc16a85aa2b39892817e78e3ed074fcb89b2a51c4979bae7e7ba98", + "sha256:50c4ee32f0e1581828843267d8de35c3298e86ceecd5e9017dc45788be70a864", + "sha256:512a85c3c8c3995cc91af3e90f38f460da5d3cade8dc3a229c8e0879037547c9", + "sha256:57aa843b783179ab72e863512e14bdcba186641daf69e4e3a5761d705dcc35b1", + "sha256:621f58cd921cd71ba6215c42954ffaa8a918eecd8c535d97befa1a8acad986dd", + "sha256:6ac2558631a81b85e7fb7a44e5035347938b0a73f5fdc27a8566777d0792a6a4", + "sha256:716754d0b5490bdcf68e1e4925edc02ac07209883314ad01a137642ddb2056f1", + "sha256:736d41cfebedecc6f159fc4ac0769dc89528a989471dc1d378ba07d29a60ba1c", + "sha256:8619b86cb68b185a778635be5b3e6018623c0761dde4df2f112896424aa27bd8", + "sha256:87fad64529cde4f1914a5b9c383628e1a8f9e3930304c09cf22c2ae118a1280e", + "sha256:89494df7f93b1836cae210c42864b292f9b31eeabca4810193761990dc689cce", + "sha256:8cac7bb373a5f1423e28de3fd5fc8063b9c8ffe8957dc1b1a59cb90453db6da1", + "sha256:8fd452dc3d49b3cc54483e033de6c006c304432e6f84b74d7b2c68afa2569ae5", + "sha256:adad60eea2c4c2a1875eb6305a0b6e61a83163f8e233586a4d6a55221ef984fe", + "sha256:c26f95e7609b821b5f08a72dab929baa0d685406b953efd7c89423a511d5c413", + "sha256:cbe1324ef52ff26ccde2cb84b8593c8bf930069dfc06c1e616f1bfd4e47f48a3", + "sha256:d05c4adae06bd0c7f696ae3ec8d993ed8ffcc4e11a76b1b35a5af8a099bd2284", + "sha256:d98bc827a1293ae767c8f2f18be3bb5151fd37ddcd7da2a5f9581baeeb7a3fa1", + "sha256:da2fb75f64792c1fc64c82313a00c728a7c301efe6a60b7a9fe35b16b4368ce7", + "sha256:e4624d7edb2576cd72bb83636cd71c8ce544d8e272f308bd80885056972ca299", + "sha256:e89e0d9e106f8a9180a4ca92a6adde60c58b1b0299e1b43bd5e0312f535fbf33", + "sha256:f11c2437fb5f812d020932119ba02d9e2bc29a6eca01a055233a8b449e3e1e7d", + "sha256:f57be5673e12763dd400fea568608700a63ce1c6bd5bdbc3cc3a2c5fdb045274", + "sha256:fc728ece3d5c772c196fd338a99798e7efac7a04f9cb6416299a3638ee9a94cd" + ], + "index": "pypi", + "version": "==1.3.18" + } + }, + "develop": {} +} diff --git a/module1-introduction-to-sql/buddymove_holidayiq.py b/module1-introduction-to-sql/buddymove_holidayiq.py new file mode 100644 index 00000000..66cc7b78 --- /dev/null +++ b/module1-introduction-to-sql/buddymove_holidayiq.py @@ -0,0 +1,45 @@ +import pandas as pd +import sqlite3 + + +def connect_to_db(db_name="buddymove_holidayiq.sqlite3"): + return sqlite3.connect(db_name) + + +def execute_query(cursor, query): + cursor.execute(query) + return cursor.fetchall() + + +# Count how many rows you have - it should be 249! +TOTAL_ROWS = """ + SELECT COUNT(*) + FROM review +""" + + +# How many users who reviewed at least 100 `Nature` in the category also +# reviewed at least 100 in the `Shopping` category? +TOTAL_USERS_NATURE_SHOPPING = """ + SELECT COUNT(*) + FROM review + WHERE Nature > 100 AND Shopping > 100 +""" + + +if __name__ == "__main__": + conn = connect_to_db() + curs = conn.cursor() + + # df = pd.read_csv('buddymove_holidayiq.csv') + # df.to_sql('review', con=conn) + + rows = execute_query(curs, TOTAL_ROWS) + users = execute_query(curs, TOTAL_USERS_NATURE_SHOPPING) + + print("There are %d total rows." % (rows[0][0])) + print( + "There are %d total users who reviewed at least 100 in the 'Nature'" + " category as well as at least 100 in the 'Shopping' category." + % (users[0][0]) + ) diff --git a/module1-introduction-to-sql/buddymove_holidayiq.sqlite3 b/module1-introduction-to-sql/buddymove_holidayiq.sqlite3 new file mode 100644 index 00000000..0814583a Binary files /dev/null and b/module1-introduction-to-sql/buddymove_holidayiq.sqlite3 differ diff --git a/module1-introduction-to-sql/rpg_db_example.py b/module1-introduction-to-sql/rpg_db_example.py new file mode 100644 index 00000000..28e8bef9 --- /dev/null +++ b/module1-introduction-to-sql/rpg_db_example.py @@ -0,0 +1,131 @@ +import sqlite3 + + +def connect_to_db(db_name="rpg_db.sqlite3"): + return sqlite3.connect(db_name) + + +def execute_query(cursor, query): + cursor.execute(query) + return cursor.fetchall() + + +# How many total Characters are there? +TOTAL_CHARACTERS = """ + SELECT COUNT(*) + FROM charactercreator_character; +""" + + +# How many of each specific subclass? +TOTAL_FIGHTERS = """ + SELECT COUNT(*) + FROM charactercreator_fighter; +""" + + +TOTAL_MAGES = """ + SELECT COUNT(*) + FROM charactercreator_mage; +""" + + +TOTAL_CLERICS = """ + SELECT COUNT(*) + FROM charactercreator_cleric; +""" + + +TOTAL_THIEFS = """ + SELECT COUNT(*) + FROM charactercreator_thief; +""" + + +TOTAL_NECROMANCERS = """ + SELECT COUNT(*) + FROM charactercreator_necromancer; +""" + +# How many total Items? +TOTAL_ITEMS = """ + SELECT COUNT(*) + FROM armory_item; +""" + + +# How many of the Items are weapons? How many are not? +TOTAL_WEAPONS = """ + SELECT COUNT(*) + FROM armory_weapon; +""" + + +TOTAL_NON_WEAPONS = """ + SELECT COUNT(*) + FROM armory_item + WHERE item_id < 138; +""" + +# How many Items does each character have? (Return first 20 rows) +TOTAL_INVENTORY = """ + SELECT character_id, COUNT(*) + FROM charactercreator_character_inventory + GROUP BY character_id; +""" + + +# How many Weapons does each character have? (Return first 20 rows) +TOTAL_WEAPON_INVENTORY = """ + SELECT character_id, COUNT(*) + FROM charactercreator_character_inventory, armory_weapon + WHERE item_id = item_ptr_id + GROUP BY character_id +""" + + +if __name__ == "__main__": + conn = connect_to_db() + curs = conn.cursor() + + characters = execute_query(curs, TOTAL_CHARACTERS) + fighters = execute_query(curs, TOTAL_FIGHTERS) + mages = execute_query(curs, TOTAL_MAGES) + clerics = execute_query(curs, TOTAL_CLERICS) + thiefs = execute_query(curs, TOTAL_THIEFS) + necromancers = execute_query(curs, TOTAL_NECROMANCERS) + items = execute_query(curs, TOTAL_ITEMS) + weapons = execute_query(curs, TOTAL_WEAPONS) + non_weapons = execute_query(curs, TOTAL_NON_WEAPONS) + total_inventory = execute_query(curs, TOTAL_INVENTORY) + total_weapon_inventory = execute_query(curs, TOTAL_WEAPON_INVENTORY) + + print("There are %d total Characters." % (characters[0][0])) + print("There are %d total Fighters." % (fighters[0][0])) + print("There are %d total Mages." % (mages[0][0])) + print("There are %d total Clerics." % (clerics[0][0])) + print("There are %d total Thiefs." % (thiefs[0][0])) + print("There are %d total Necromancers." % (necromancers[0][0])) + print("There are %d total Items." % (items[0][0])) + print("There are %d total Weapons." % (weapons[0][0])) + print("There are %d total Non-Weapons." % (non_weapons[0][0])) + + for pair in total_inventory[:20]: + print("Character %d has %d items." % (pair[0], pair[1])) + for pair in total_weapon_inventory[:20]: + print("Character %d has %d weapons." % (pair[0], pair[1])) + + num_items = 0 + num_weapons = 0 + for pair in total_inventory: + num_items += pair[1] + for pair in total_weapon_inventory: + num_weapons += pair[1] + print( + "On average, each Character has %f items?" + % (num_items / characters[0][0]) + ) + print( + "On average, each Character has %f weapons?" + % (num_weapons / characters[0][0]) + ) diff --git a/module2-sql-for-analysis/insert_titanic.py b/module2-sql-for-analysis/insert_titanic.py new file mode 100644 index 00000000..45e7a0cc --- /dev/null +++ b/module2-sql-for-analysis/insert_titanic.py @@ -0,0 +1,88 @@ +# Then, set up a new table for the Titanic data (`titanic.csv`) - spend some time +# thinking about the schema to make sure it is appropriate for the columns. +# [Enumerated types](https://www.postgresql.org/docs/9.1/datatype-enum.html) may +# be useful. Once it is set up, write a `insert_titanic.py` script that uses +# `psycopg2` to connect to and upload the data from the csv, and add the file to +# our repo. Then start writing PostgreSQL queries to explore the data! + +import psycopg2 +import pandas as pd +import csv + +# Looks similar to sqlite3, but needs auth/host info to connect +# Note - this is sensitive info (particularly password) +# and shouldn't be checked into git! More on how to handle next week + +dbname = "ajkuvccu" +user = "ajkuvccu" # ElephantSQL happens to use same name for db and user +password = "FBOFpSpFdAFrxYUG-DBqN39wDQ0Mjc4V" # Sensitive! Don't share/commit +host = "isilo.db.elephantsql.com" + + +def create_type_class(): + type_class_statement = """ + CREATE TYPE class as ENUM ('1', '2', '3'); + """ + + pg_curs.execute(type_class_statement) + pg_conn.commit() # "Save" by committing + + +def drop(): + pg_curs.execute("DROP TABLE titanic") + pg_conn.commit() # "Save" by committing + + +# Defining a function to refresh connection and cursor +def refresh_connection_and_cursor(conn, curs): + curs.close() + conn.close() + pg_conn = psycopg2.connect( + dbname=dbname, user=user, password=password, host=host + ) + pg_curs = pg_conn.cursor() + return pg_conn, pg_curs + + +if __name__ == "__main__": + # If we make too many connections, the database complains! Be sure to close + # cursors and connections + pg_conn = psycopg2.connect( + dbname=dbname, user=user, password=password, host=host + ) + + pg_curs = pg_conn.cursor() # Works the same as SQLite! + + # We're connected, but db is empty + # Let's run a simple example to populate (from the tk) + create_table_statement = """ + CREATE TABLE titanic ( + survived boolean, + pclass class, + name varchar(100), + sex varchar(6), + age float, + siblings_spouses_aboard integer, + parents_children_aboard integer, + fare float + ); + """ + # NOTE - these types are PostgreSQL specific. This won't work in SQLite! + + pg_conn, pg_curs = refresh_connection_and_cursor(pg_conn, pg_curs) + + # pg_curs.execute(create_table_statement) + pg_conn.commit() # "Save" by committing + + with open("titanic.csv", "r") as f: + reader = csv.reader(f) + next(reader) # Skipe the header row. + for row in reader: + pg_curs.execute( + "INSERT INTO titanic VALUES (%s, %s, %s, %s, %s, %s, %s, %s)", + row, + ) + pg_conn.commit() + + pg_curs.execute("SELECT * FROM 'public'.'titanic' LIMIT 100") + pg_conn.commit() # "Save" by committing diff --git a/module2-sql-for-analysis/rpg_db.sqlite3 b/module2-sql-for-analysis/rpg_db.sqlite3 new file mode 100644 index 00000000..837d7f16 Binary files /dev/null and b/module2-sql-for-analysis/rpg_db.sqlite3 differ diff --git a/module2-sql-for-analysis/rpg_postgres.py b/module2-sql-for-analysis/rpg_postgres.py new file mode 100644 index 00000000..28acb299 --- /dev/null +++ b/module2-sql-for-analysis/rpg_postgres.py @@ -0,0 +1,199 @@ +import psycopg2 +import sqlite3 + +# Defining a function to refresh connection and cursor +def refresh_connection_and_cursor(conn, curs): + curs.close() + conn.close() + pg_conn = psycopg2.connect( + dbname=dbname, user=user, password=password, host=host + ) + pg_curs = pg_conn.cursor() + return pg_conn, pg_curs + + +if __name__ == "__main__": + + # Looks similar to sqlite3, but needs auth/host info to connect + # Note - this is sensitive info (particularly password) + # and shouldn't be checked into git! More on how to handle next week + + dbname = "ajkuvccu" + user = "ajkuvccu" # ElephantSQL happens to use same name for db and user + password = ( # Sensitive! Don't share/commit + "FBOFpSpFdAFrxYUG-DBqN39wDQ0Mjc4V" + ) + host = "isilo.db.elephantsql.com" + + # If we make too many connections, the database complains! Be sure to close + # cursors and connections + pg_conn = psycopg2.connect( + dbname=dbname, user=user, password=password, host=host + ) + + pg_curs = pg_conn.cursor() # Works the same as SQLite! + + # We're connected, but db is empty + # Let's run a simple example to populate (from the tk) + create_table_statement = """ + CREATE TABLE test_table ( + id SERIAL PRIMARY KEY, + name varchar(40) NOT NULL, + data JSONB + ); + """ + # NOTE - these types are PostgreSQL specific. This won't work in SQLite! + + # pg_curs.execute(create_table_statement) + pg_conn.commit() # "Save" by committing + + # We're connected, let's see what is in the db + pg_curs.execute("SELECT * FROM test_table;") + pg_curs.fetchall() + + insert_statement = """ + INSERT INTO test_table (name, data) VALUES + ( + 'Zaphod Beeblebrox', + '{"key": "value", "key2": true}'::JSONB + ) + """ + + pg_curs.execute(insert_statement) + pg_conn.commit() + + pg_curs.execute("SELECT * FROM test_table;") + pg_curs.fetchall() + + pg_curs.close() + # pg_conn.close() # If we were really done + + # Database constraints from the schema are enforced! + # This is good - helps ensure data quality + pg_curs = pg_conn.cursor() + pg_curs.execute("INSERT INTO test_table (name, data) VALUES (null, null);") + + sl_conn = sqlite3.connect("rpg_db.sqlite3") + sl_curs = sl_conn.cursor() + + get_characters = "SELECT * FROM charactercreator_character;" + sl_curs.execute(get_characters) + characters = sl_curs.fetchall() + + # Step 1 complete! We have a list of tuples with all our character data + # NOTE - this is *not* a pandas dataframe + # We don't know types - so, for "Transform" we need to figure that out + # Because our destination (PostgreSQL) needs a schema for this data + + # Step 2 - Transform + # Our goal is to make a schema to define a table that fits this data in Postgres + # We can check the old schema! + # This is an internal meta sort of query, will vary by database flavor + sl_curs.execute("PRAGMA table_info(charactercreator_character);") + sl_curs.fetchall() + + # A bunch of integers, and a varchar + # We need to make a create statement for PostgreSQL that captures this + create_character_table = """ + CREATE TABLE charactercreator_character ( + character_id SERIAL PRIMARY KEY, + name VARCHAR(30), + level INT, + exp INT, + hp INT, + strength INT, + intelligence INT, + dexterity INT, + wisdom INT + ); + """ + + pg_conn, pg_curs = refresh_connection_and_cursor(pg_conn, pg_curs) + + # Execute the create table + # pg_curs.execute(create_character_table) + pg_conn.commit() + + # PostgreSQL comparison to the SQLite pragma + # We can query tables if we want to check + # This is a clever optional thing, showing postgresql internals + show_tables = """ + SELECT + * + FROM + pg_catalog.pg_tables + WHERE + schemaname != 'pg_catalog' + AND schemaname != 'information_schema'; + """ + pg_curs.execute(show_tables) + pg_curs.fetchall() + + # Done with step 2 (transform) + # We didn't really change the data, just made sure we could fit it in our target + # Step 3 - Load! + characters[0] + + # We want to put this tuple in a string w/INSERT INTO... + # But we don't want the first field (id) - PostgreSQL generates that + characters[0][1:] + + example_insert = ( + """ + INSERT INTO charactercreator_character + (name, level, exp, hp, strength, intelligence, dexterity, wisdom) + VALUES """ + + str(characters[0][1:]) + + ";" + ) + + print(example_insert) # Not running, just inspecting + + # If we ran this, we'd insert the first character + # But we want them all - loops! + for character in characters: + insert_character = ( + """ + INSERT INTO charactercreator_character + (name, level, exp, hp, strength, intelligence, dexterity, wisdom) + VALUES """ + + str(character[1:]) + + ";" + ) + pg_curs.execute(insert_character) + + # Note - we're executing each character one at a time + # That works, and is simple, but inefficient (lots of roundtrips to database) + # Stretch/afternoon goal - see if you can combine into a single + # insert that does them all at once + pg_conn.commit() + + # Let's look at what we've done + pg_curs.execute("SELECT * FROM charactercreator_character LIMIT 5;") + pg_curs.fetchall() + + # Ids are different (on first run, now fixed)! + # That's because we had an aborted run + # Let's fix this by deleting the data and DROPping the table + # Other tables are fine, but we'll dump the data *and* schema to rerun + # pg_curs.execute('DROP TABLE charactercreator_character;') + # pg_conn.commit() + + # Now we need to rerun the above... scrolling up and down, because notebooks + # Specifically rerunning character table create statement and data inserts + + # Now the data looks the same! But let's check it systematically + pg_curs.execute("SELECT * FROM charactercreator_character;") + pg_characters = pg_curs.fetchall() + + # We could do more spot checks, but let's loop and check them all + # TODO/afternoon task - consider making this a more formal test + for character, pg_character in zip(characters, pg_characters): + assert character == pg_character + + # No complaints - which means they're all the same! + # Closing out cursor/connection to wrap up + pg_curs.close() + pg_conn.close() + sl_curs.close() + sl_conn.close() diff --git a/module2-sql-for-analysis/titanic.py b/module2-sql-for-analysis/titanic.py new file mode 100644 index 00000000..f1e52095 --- /dev/null +++ b/module2-sql-for-analysis/titanic.py @@ -0,0 +1,10 @@ +import pandas as pd +from sqlalchemy import creat_engine + +engine = create_engine( + "postgres://ajkuvccu:FBOFpSpFdAFrxYUG-DBqN39wDQ0Mjc4V@isilo.db.elephantsql.com:5432/ajkuvccu" +) + +df = pd.read_csv("titanic.csv") + +df.to_sql("titanic_postgres", con=engine) diff --git a/module3-nosql-and-document-oriented-databases/rpg_db.sqlite3 b/module3-nosql-and-document-oriented-databases/rpg_db.sqlite3 new file mode 100644 index 00000000..837d7f16 Binary files /dev/null and b/module3-nosql-and-document-oriented-databases/rpg_db.sqlite3 differ diff --git a/module3-nosql-and-document-oriented-databases/rpg_mongodb.py b/module3-nosql-and-document-oriented-databases/rpg_mongodb.py new file mode 100644 index 00000000..0feabc1b --- /dev/null +++ b/module3-nosql-and-document-oriented-databases/rpg_mongodb.py @@ -0,0 +1,58 @@ +# Reproduce (debugging as needed) the live lecture task of setting up and +# inserting the RPG data into a MongoDB instance, and add the code you write to do +# so here. Then answer the following question (can be a comment in the top of your +# code or in Markdown) - "How was working with MongoDB different from working with +# PostgreSQL? What was easier, and what was harder?" + +# MongoDB was much easier to work with compared to PostgreSQL due to the ease of +# using less code to accomplish the same task. I have to consistently make sure +# I execute SQL commands, fetchall, and commit on my cursor and connection +# while simultaneously double checking the opening and closing of cursors and +# my connection. MongoDB has commands that greatly streamlined the import of the +# rpg tables into itself with relatively little code. + +import pymongo +import sqlite3 + +if __name__ == "__main__": + + # Given code to connect to Mongo + password = ( # Don't commit/share this! Reset it if it leaks + "EtZkty4uluNwiVyb" + ) + dbname = "rpg" + client = pymongo.MongoClient( + "mongodb+srv://xpandalord:" + + password + + "@cluster0.q6n34.mongodb.net/" + + dbname + + "?retryWrites=true&w=majority" + ) + db = client.rpg + + # Step 1 - Extract, getting data out of SQLite3 + sl_conn = sqlite3.connect("rpg_db.sqlite3") + sl_curs = sl_conn.cursor() + + # Our goal - copy the charactercreator_character table + get_characters = "SELECT * FROM charactercreator_character;" + characters = sl_curs.execute(get_characters).fetchall() + + db.rpg.drop() + + for i in range(len(characters)): + rpg_doc = { + "doc_type": "characters", + "character_id": characters[i][0], + "name": characters[i][1], + "level": characters[i][2], + "exp": characters[i][3], + "hp": characters[i][4], + "strength": characters[i][5], + "intelligence": characters[i][6], + "dexterity": characters[i][7], + "wisdom": characters[i][8], + } + db.rpg.insert_one(rpg_doc) + + print(list(db.rpg.find({"doc_type": "characters"}))) diff --git a/module4-acid-and-database-scalability-tradeoffs/answer.py b/module4-acid-and-database-scalability-tradeoffs/answer.py new file mode 100644 index 00000000..77da8a42 --- /dev/null +++ b/module4-acid-and-database-scalability-tradeoffs/answer.py @@ -0,0 +1,530 @@ +import pandas as pd +import psycopg2 +import pymongo +import sqlite3 + + +def create_characters(db): + # Step 1 - Extract, getting data out of SQLite3 + sl_conn = sqlite3.connect("rpg_db.sqlite3") + sl_curs = sl_conn.cursor() + + # Our goal - copy the charactercreator_character table + get_characters = "SELECT * FROM charactercreator_character;" + characters = sl_curs.execute(get_characters).fetchall() + + db.characters.drop() + + for i in range(len(characters)): + characters_doc = { + "doc_type": "characters", + "character_id": characters[i][0], + "name": characters[i][1], + "level": characters[i][2], + "exp": characters[i][3], + "hp": characters[i][4], + "strength": characters[i][5], + "intelligence": characters[i][6], + "dexterity": characters[i][7], + "wisdom": characters[i][8], + } + db.characters.insert_one(characters_doc) + + sl_curs.close() + sl_conn.close() + + +def create_fighters(db): + # Step 1 - Extract, getting data out of SQLite3 + sl_conn = sqlite3.connect("rpg_db.sqlite3") + sl_curs = sl_conn.cursor() + + # Our goal - copy the charactercreator_fighter table + get_fighters = "SELECT * FROM charactercreator_fighter;" + fighters = sl_curs.execute(get_fighters).fetchall() + + db.fighters.drop() + + for i in range(len(fighters)): + fighters_doc = { + "doc_type": "fighters", + "character_ptr_id": fighters[i][0], + "using_shield": fighters[i][1], + "rage": fighters[i][2], + } + db.fighters.insert_one(fighters_doc) + + sl_curs.close() + sl_conn.close() + + +def create_mages(db): + # Step 1 - Extract, getting data out of SQLite3 + sl_conn = sqlite3.connect("rpg_db.sqlite3") + sl_curs = sl_conn.cursor() + + # Our goal - copy the charactercreator_mage table + get_mages = "SELECT * FROM charactercreator_mage;" + mages = sl_curs.execute(get_mages).fetchall() + + db.mages.drop() + + for i in range(len(mages)): + mages_doc = { + "doc_type": "mages", + "character_ptr_id": mages[i][0], + "has_pet": mages[i][1], + "mana": mages[i][2], + } + db.mages.insert_one(mages_doc) + + sl_curs.close() + sl_conn.close() + + +def create_clerics(db): + # Step 1 - Extract, getting data out of SQLite3 + sl_conn = sqlite3.connect("rpg_db.sqlite3") + sl_curs = sl_conn.cursor() + + # Our goal - copy the charactercreator_cleric table + get_clerics = "SELECT * FROM charactercreator_cleric;" + clerics = sl_curs.execute(get_clerics).fetchall() + + db.clerics.drop() + + for i in range(len(clerics)): + clerics_doc = { + "doc_type": "clerics", + "character_ptr_id": clerics[i][0], + "using_shield": clerics[i][1], + "mana": clerics[i][2], + } + db.clerics.insert_one(clerics_doc) + + sl_curs.close() + sl_conn.close() + + +def create_thiefs(db): + # Step 1 - Extract, getting data out of SQLite3 + sl_conn = sqlite3.connect("rpg_db.sqlite3") + sl_curs = sl_conn.cursor() + + # Our goal - copy the charactercreator_thief table + get_thiefs = "SELECT * FROM charactercreator_thief;" + thiefs = sl_curs.execute(get_thiefs).fetchall() + + db.thiefs.drop() + + for i in range(len(thiefs)): + thiefs_doc = { + "doc_type": "thiefs", + "character_ptr_id": thiefs[i][0], + "is_sneaking": thiefs[i][1], + "energy": thiefs[i][2], + } + db.thiefs.insert_one(thiefs_doc) + + sl_curs.close() + sl_conn.close() + + +def create_necromancers(db): + # Step 1 - Extract, getting data out of SQLite3 + sl_conn = sqlite3.connect("rpg_db.sqlite3") + sl_curs = sl_conn.cursor() + + # Our goal - copy the charactercreator_necromancer table + get_necromancers = "SELECT * FROM charactercreator_necromancer;" + necromancers = sl_curs.execute(get_necromancers).fetchall() + + db.necromancers.drop() + + for i in range(len(necromancers)): + necromancers_doc = { + "doc_type": "necromancers", + "mage_ptr_id": necromancers[i][0], + "talisman_charged": necromancers[i][1], + } + db.necromancers.insert_one(necromancers_doc) + + sl_curs.close() + sl_conn.close() + + +def create_items(db): + # Step 1 - Extract, getting data out of SQLite3 + sl_conn = sqlite3.connect("rpg_db.sqlite3") + sl_curs = sl_conn.cursor() + + # Our goal - copy the armory_item table + get_items = "SELECT * FROM armory_item;" + items = sl_curs.execute(get_items).fetchall() + + db.items.drop() + + for i in range(len(items)): + items_doc = { + "doc_type": "items", + "item_id": items[i][0], + "name": items[i][1], + "value": items[i][2], + "weight": items[i][3], + } + db.items.insert_one(items_doc) + + sl_curs.close() + sl_conn.close() + + +def create_weapons(db): + # Step 1 - Extract, getting data out of SQLite3 + sl_conn = sqlite3.connect("rpg_db.sqlite3") + sl_curs = sl_conn.cursor() + + # Our goal - copy the armory_weapon table + get_weapons = "SELECT * FROM armory_weapon;" + weapons = sl_curs.execute(get_weapons).fetchall() + + db.weapons.drop() + + for i in range(len(weapons)): + weapons_doc = { + "doc_type": "weapons", + "item_ptr_id": weapons[i][0], + "power": weapons[i][1], + } + db.weapons.insert_one(weapons_doc) + + sl_curs.close() + sl_conn.close() + + +if __name__ == "__main__": + # Given code to connect to Mongo + password = ( # Don't commit/share this! Reset it if it leaks + "EtZkty4uluNwiVyb" + ) + dbname = "rpg" + client = pymongo.MongoClient( + "mongodb+srv://xpandalord:" + + password + + "@cluster0.q6n34.mongodb.net/" + + dbname + + "?retryWrites=true&w=majority" + ) + db = client.rpg + + # How many total Characters are there? + # create_characters(db) + num_characters = len(list(db.characters.find({"doc_type": "characters"}))) + print("There are %d total Characters." % (num_characters)) + + # How many of each specific subclass? + # create_fighters(db) + num_fighters = len(list(db.fighters.find({"doc_type": "fighters"}))) + print("There are %d total Fighters." % (num_fighters)) + + # create_mages(db) + num_mages = len(list(db.mages.find({"doc_type": "mages"}))) + print("There are %d total Mages." % (num_mages)) + + # create_clerics(db) + num_clerics = len(list(db.clerics.find({"doc_type": "clerics"}))) + print("There are %d total Clerics." % (num_clerics)) + + # create_thiefs(db) + num_thiefs = len(list(db.thiefs.find({"doc_type": "thiefs"}))) + print("There are %d total Thiefs." % (num_thiefs)) + + # create_necromancers(db) + num_necromancers = len( + list(db.necromancers.find({"doc_type": "necromancers"})) + ) + print("There are %d total Necromancers." % (num_necromancers)) + + # How many total Items? + # create_items(db) + num_items = len(list(db.items.find({"doc_type": "items"}))) + print("There are %d total Items." % (num_items)) + + # How many of the Items are weapons? How many are not? + # create_weapons(db) + num_weapons = len(list(db.weapons.find({"doc_type": "weapons"}))) + print("There are %d total Weapons." % (num_weapons)) + non_weapons = len( + list(db.items.find({"doc_type": "items", "item_id": {"$lt": 138}})) + ) + print("There are %d total Non-Weapons." % (non_weapons)) + + # Looks similar to sqlite3, but needs auth/host info to connect + # Note - this is sensitive info (particularly password) + # and shouldn't be checked into git! More on how to handle next week + + dbname = "ajkuvccu" + user = "ajkuvccu" # ElephantSQL happens to use same name for db and user + password = ( # Sensitive! Don't share/commit + "FBOFpSpFdAFrxYUG-DBqN39wDQ0Mjc4V" + ) + host = "isilo.db.elephantsql.com" + + # If we make too many connections, the database complains! Be sure to close + # cursors and connections + pg_conn = psycopg2.connect( + dbname=dbname, user=user, password=password, host=host + ) + + pg_curs = pg_conn.cursor() # Works the same as SQLite! + + # How many passengers survived, and how many died? + pg_curs.execute( + 'SELECT COUNT(*) FROM titanic_postgres WHERE "Survived" = 1;' + ) + print("%d passengers survived." % (pg_curs.fetchall()[0][0])) + pg_curs.execute( + 'SELECT COUNT(*) FROM titanic_postgres WHERE "Survived" = 0;' + ) + print("%d passengers died." % (pg_curs.fetchall()[0][0])) + + # How many passengers were in each class? + pg_curs.execute( + 'SELECT COUNT(*) FROM titanic_postgres WHERE "Pclass" = 1;' + ) + print("%d passengers were from class 1." % (pg_curs.fetchall()[0][0])) + pg_curs.execute( + 'SELECT COUNT(*) FROM titanic_postgres WHERE "Pclass" = 2;' + ) + print("%d passengers were from class 2." % (pg_curs.fetchall()[0][0])) + pg_curs.execute( + 'SELECT COUNT(*) FROM titanic_postgres WHERE "Pclass" = 3;' + ) + print("%d passengers were from class 3." % (pg_curs.fetchall()[0][0])) + + # How many passengers survived/died within each class? + pg_curs.execute( + 'SELECT COUNT(*) FROM titanic_postgres WHERE "Survived" = 1 AND' + ' "Pclass" = 1;' + ) + print( + "%d passengers survived and were from class 1." + % (pg_curs.fetchall()[0][0]) + ) + pg_curs.execute( + 'SELECT COUNT(*) FROM titanic_postgres WHERE "Survived" = 1 AND' + ' "Pclass" = 2;' + ) + print( + "%d passengers survived and were from class 2." + % (pg_curs.fetchall()[0][0]) + ) + pg_curs.execute( + 'SELECT COUNT(*) FROM titanic_postgres WHERE "Survived" = 1 AND' + ' "Pclass" = 3;' + ) + print( + "%d passengers survived and were from class 3." + % (pg_curs.fetchall()[0][0]) + ) + pg_curs.execute( + 'SELECT COUNT(*) FROM titanic_postgres WHERE "Survived" = 0 AND' + ' "Pclass" = 1;' + ) + print( + "%d passengers died and were from class 1." + % (pg_curs.fetchall()[0][0]) + ) + pg_curs.execute( + 'SELECT COUNT(*) FROM titanic_postgres WHERE "Survived" = 0 AND' + ' "Pclass" = 2;' + ) + print( + "%d passengers died and were from class 2." + % (pg_curs.fetchall()[0][0]) + ) + pg_curs.execute( + 'SELECT COUNT(*) FROM titanic_postgres WHERE "Survived" = 0 AND' + ' "Pclass" = 3;' + ) + print( + "%d passengers died and were from class 3." + % (pg_curs.fetchall()[0][0]) + ) + + # What was the average age of survivors vs nonsurvivors? + pg_curs.execute( + 'SELECT AVG("Age") FROM titanic_postgres WHERE "Survived" = 1;' + ) + print( + "The average age of passengers who survived was %f." + % (pg_curs.fetchall()[0][0]) + ) + pg_curs.execute( + 'SELECT AVG("Age") FROM titanic_postgres WHERE "Survived" = 0;' + ) + print( + "The average died of passengers who survived was %f." + % (pg_curs.fetchall()[0][0]) + ) + + # What was the average age of each passenger class? + pg_curs.execute( + 'SELECT AVG("Age") FROM titanic_postgres WHERE "Pclass" = 1;' + ) + print( + "The average age of passengers who were from class 1 was %f." + % (pg_curs.fetchall()[0][0]) + ) + pg_curs.execute( + 'SELECT AVG("Age") FROM titanic_postgres WHERE "Pclass" = 2;' + ) + print( + "The average age of passengers who were from class 2 was %f." + % (pg_curs.fetchall()[0][0]) + ) + pg_curs.execute( + 'SELECT AVG("Age") FROM titanic_postgres WHERE "Pclass" = 3;' + ) + print( + "The average age of passengers who were from class 3 was %f." + % (pg_curs.fetchall()[0][0]) + ) + + # What was the average fare by passenger class? By survival? + pg_curs.execute( + 'SELECT AVG("Fare") FROM titanic_postgres WHERE "Pclass" = 1;' + ) + print( + "The average fare of passengers who were from class 1 was %f." + % (pg_curs.fetchall()[0][0]) + ) + pg_curs.execute( + 'SELECT AVG("Fare") FROM titanic_postgres WHERE "Pclass" = 2;' + ) + print( + "The average fare of passengers who were from class 2 was %f." + % (pg_curs.fetchall()[0][0]) + ) + pg_curs.execute( + 'SELECT AVG("Fare") FROM titanic_postgres WHERE "Pclass" = 3;' + ) + print( + "The average fare of passengers who were from class 3 was %f." + % (pg_curs.fetchall()[0][0]) + ) + pg_curs.execute( + 'SELECT AVG("Fare") FROM titanic_postgres WHERE "Survived" = 1' + ) + print( + "The average fare of passengers who survived was %f." + % (pg_curs.fetchall()[0][0]) + ) + pg_curs.execute( + 'SELECT AVG("Fare") FROM titanic_postgres WHERE "Survived" = 0' + ) + print( + "The average fare of passengers who died was %f." + % (pg_curs.fetchall()[0][0]) + ) + + # How many siblings/spouses aboard on average, by passenger class? By survival? + pg_curs.execute( + 'SELECT AVG("Siblings/Spouses Aboard") FROM titanic_postgres WHERE' + ' "Pclass" = 1;' + ) + print( + "The average number of passengers' siblings/spouses aboard who" + " were from class 1 was %f." + % (pg_curs.fetchall()[0][0]) + ) + pg_curs.execute( + 'SELECT AVG("Siblings/Spouses Aboard") FROM titanic_postgres WHERE' + ' "Pclass" = 2;' + ) + print( + "The average number of passengers' siblings/spouses aboard who" + " were from class 2 was %f." + % (pg_curs.fetchall()[0][0]) + ) + pg_curs.execute( + 'SELECT AVG("Siblings/Spouses Aboard") FROM titanic_postgres WHERE' + ' "Pclass" = 3;' + ) + print( + "The average number of passengers' siblings/spouses aboard who" + " were from class 3 was %f." + % (pg_curs.fetchall()[0][0]) + ) + pg_curs.execute( + 'SELECT AVG("Siblings/Spouses Aboard") FROM titanic_postgres WHERE' + ' "Survived" = 1' + ) + print( + "The average number of passengers' siblings/spouses aboard who" + " survived was %f." + % (pg_curs.fetchall()[0][0]) + ) + pg_curs.execute( + 'SELECT AVG("Siblings/Spouses Aboard") FROM titanic_postgres WHERE' + ' "Survived" = 0' + ) + print( + "The average number of passengers' siblings/spouses aboard who" + " died was %f." + % (pg_curs.fetchall()[0][0]) + ) + + # How many parents/children aboard on average, by passenger class? By survival? + pg_curs.execute( + 'SELECT AVG("Parents/Children Aboard") FROM titanic_postgres WHERE' + ' "Pclass" = 1;' + ) + print( + "The average number of passengers' parents/children aboard who" + " were from class 1 was %f." + % (pg_curs.fetchall()[0][0]) + ) + pg_curs.execute( + 'SELECT AVG("Parents/Children Aboard") FROM titanic_postgres WHERE' + ' "Pclass" = 2;' + ) + print( + "The average number of passengers' parents/children aboard who" + " were from class 2 was %f." + % (pg_curs.fetchall()[0][0]) + ) + pg_curs.execute( + 'SELECT AVG("Parents/Children Aboard") FROM titanic_postgres WHERE' + ' "Pclass" = 3;' + ) + print( + "The average number of passengers' parents/children aboard who" + " were from class 3 was %f." + % (pg_curs.fetchall()[0][0]) + ) + pg_curs.execute( + 'SELECT AVG("Parents/Children Aboard") FROM titanic_postgres WHERE' + ' "Survived" = 1' + ) + print( + "The average number of passengers' parents/children aboard who" + " survived was %f." + % (pg_curs.fetchall()[0][0]) + ) + pg_curs.execute( + 'SELECT AVG("Parents/Children Aboard") FROM titanic_postgres WHERE' + ' "Survived" = 0' + ) + print( + "The average number of passengers' parents/children aboard who" + " died was %f." + % (pg_curs.fetchall()[0][0]) + ) + + # Do any passengers have the same name? + pg_curs.execute("SELECT COUNT(*) FROM titanic_postgres") + total = pg_curs.fetchall()[0][0] + pg_curs.execute('SELECT COUNT(DISTINCT "Name") FROM titanic_postgres') + print( + "%d passengers have the same name" % (total - pg_curs.fetchall()[0][0]) + ) diff --git a/module4-acid-and-database-scalability-tradeoffs/example_db.sqlite3 b/module4-acid-and-database-scalability-tradeoffs/example_db.sqlite3 new file mode 100644 index 00000000..11becb88 Binary files /dev/null and b/module4-acid-and-database-scalability-tradeoffs/example_db.sqlite3 differ diff --git a/module4-acid-and-database-scalability-tradeoffs/map_reduce_example.py b/module4-acid-and-database-scalability-tradeoffs/map_reduce_example.py new file mode 100644 index 00000000..4c2f1cbf --- /dev/null +++ b/module4-acid-and-database-scalability-tradeoffs/map_reduce_example.py @@ -0,0 +1,28 @@ +from functools import reduce # map is built-in + + +my_list = [1, 2, 3, 4] + +# We want the sum of squared values +# (A fairly real statistical task!) + +# Traditional (non-mapreduce) approach +ssv_trad = sum([i ** 2 for i in my_list]) + +# That works fine - but what if we had 40 billion numbers? +# We could use a mapreduce approach + +# To be clear - this code still runs on one computer +# But mapreduce paradigm *could* be distributed more directly + +squared_values = map(lambda i: i ** 2, my_list) + + +def add_numbers(x1, x2): + return x1 + x2 + + +ssv_mapreduce = reduce(add_numbers, squared_values) + +print("Sum of squared values (trad): " + str(ssv_trad)) +print("Sum of squared values (map-reduce): " + str(ssv_mapreduce)) diff --git a/module4-acid-and-database-scalability-tradeoffs/rpg_db.sqlite3 b/module4-acid-and-database-scalability-tradeoffs/rpg_db.sqlite3 new file mode 100644 index 00000000..837d7f16 Binary files /dev/null and b/module4-acid-and-database-scalability-tradeoffs/rpg_db.sqlite3 differ diff --git a/module4-acid-and-database-scalability-tradeoffs/sqlite_demo.py b/module4-acid-and-database-scalability-tradeoffs/sqlite_demo.py new file mode 100644 index 00000000..00fd4eae --- /dev/null +++ b/module4-acid-and-database-scalability-tradeoffs/sqlite_demo.py @@ -0,0 +1,34 @@ +"""Creating and inserting data with SQLite.""" + +import sqlite3 + + +def create_table(conn): + curs = conn.cursor() + create_statement = """ + CREATE TABLE students ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + name CHAR(20), + favorite_number INTEGER, + least_favorite_number INTEGER + ); + """ + curs.execute(create_statement) + curs.close() + conn.commit() + + +def insert_data(conn): + my_data = [("Malven", 7, 12), ("Dondre", -5, 101), ("Peggy", 14, 74)] + curs = conn.cursor() + for row in my_data: + pass + # Exercise - write an insert statement! + curs.close() + conn.commit() + + +if __name__ == "__main__": + conn = sqlite3.connect("example_db.sqlite3") + # create_table(conn) + insert_data(conn) diff --git a/module4-acid-and-database-scalability-tradeoffs/titanic.csv b/module4-acid-and-database-scalability-tradeoffs/titanic.csv new file mode 100644 index 00000000..853188c8 --- /dev/null +++ b/module4-acid-and-database-scalability-tradeoffs/titanic.csv @@ -0,0 +1,888 @@ +Survived,Pclass,Name,Sex,Age,Siblings/Spouses Aboard,Parents/Children Aboard,Fare +0,3,Mr. Owen Harris Braund,male,22,1,0,7.25 +1,1,Mrs. John Bradley (Florence Briggs Thayer) Cumings,female,38,1,0,71.2833 +1,3,Miss. Laina Heikkinen,female,26,0,0,7.925 +1,1,Mrs. Jacques Heath (Lily May Peel) Futrelle,female,35,1,0,53.1 +0,3,Mr. William Henry Allen,male,35,0,0,8.05 +0,3,Mr. James Moran,male,27,0,0,8.4583 +0,1,Mr. Timothy J McCarthy,male,54,0,0,51.8625 +0,3,Master. Gosta Leonard Palsson,male,2,3,1,21.075 +1,3,Mrs. Oscar W (Elisabeth Vilhelmina Berg) Johnson,female,27,0,2,11.1333 +1,2,Mrs. Nicholas (Adele Achem) Nasser,female,14,1,0,30.0708 +1,3,Miss. Marguerite Rut Sandstrom,female,4,1,1,16.7 +1,1,Miss. Elizabeth Bonnell,female,58,0,0,26.55 +0,3,Mr. William Henry Saundercock,male,20,0,0,8.05 +0,3,Mr. Anders Johan Andersson,male,39,1,5,31.275 +0,3,Miss. Hulda Amanda Adolfina Vestrom,female,14,0,0,7.8542 +1,2,Mrs. (Mary D Kingcome) Hewlett,female,55,0,0,16 +0,3,Master. Eugene Rice,male,2,4,1,29.125 +1,2,Mr. Charles Eugene Williams,male,23,0,0,13 +0,3,Mrs. Julius (Emelia Maria Vandemoortele) Vander Planke,female,31,1,0,18 +1,3,Mrs. Fatima Masselmani,female,22,0,0,7.225 +0,2,Mr. Joseph J Fynney,male,35,0,0,26 +1,2,Mr. Lawrence Beesley,male,34,0,0,13 +1,3,Miss. Anna McGowan,female,15,0,0,8.0292 +1,1,Mr. William Thompson Sloper,male,28,0,0,35.5 +0,3,Miss. Torborg Danira Palsson,female,8,3,1,21.075 +1,3,Mrs. Carl Oscar (Selma Augusta Emilia Johansson) Asplund,female,38,1,5,31.3875 +0,3,Mr. Farred Chehab Emir,male,26,0,0,7.225 +0,1,Mr. Charles Alexander Fortune,male,19,3,2,263 +1,3,Miss. Ellen O'Dwyer,female,24,0,0,7.8792 +0,3,Mr. Lalio Todoroff,male,23,0,0,7.8958 +0,1,Don. Manuel E Uruchurtu,male,40,0,0,27.7208 +1,1,Mrs. William Augustus (Marie Eugenie) Spencer,female,48,1,0,146.5208 +1,3,Miss. Mary Agatha Glynn,female,18,0,0,7.75 +0,2,Mr. Edward H Wheadon,male,66,0,0,10.5 +0,1,Mr. Edgar Joseph Meyer,male,28,1,0,82.1708 +0,1,Mr. Alexander Oskar Holverson,male,42,1,0,52 +1,3,Mr. Hanna Mamee,male,18,0,0,7.2292 +0,3,Mr. Ernest Charles Cann,male,21,0,0,8.05 +0,3,Miss. Augusta Maria Vander Planke,female,18,2,0,18 +1,3,Miss. Jamila Nicola-Yarred,female,14,1,0,11.2417 +0,3,Mrs. Johan (Johanna Persdotter Larsson) Ahlin,female,40,1,0,9.475 +0,2,Mrs. William John Robert (Dorothy Ann Wonnacott) Turpin,female,27,1,0,21 +1,2,Miss. Simonne Marie Anne Andree Laroche,female,3,1,2,41.5792 +1,3,Miss. Margaret Delia Devaney,female,19,0,0,7.8792 +0,3,Mr. William John Rogers,male,30,0,0,8.05 +0,3,Mr. Denis Lennon,male,20,1,0,15.5 +1,3,Miss. Bridget O'Driscoll,female,27,0,0,7.75 +0,3,Mr. Youssef Samaan,male,16,2,0,21.6792 +0,3,Mrs. Josef (Josefine Franchi) Arnold-Franchi,female,18,1,0,17.8 +0,3,Master. Juha Niilo Panula,male,7,4,1,39.6875 +0,3,Mr. Richard Cater Nosworthy,male,21,0,0,7.8 +1,1,Mrs. Henry Sleeper (Myna Haxtun) Harper,female,49,1,0,76.7292 +1,2,Mrs. Lizzie (Elizabeth Anne Wilkinson) Faunthorpe,female,29,1,0,26 +0,1,Mr. Engelhart Cornelius Ostby,male,65,0,1,61.9792 +1,1,Mr. Hugh Woolner,male,46,0,0,35.5 +1,2,Miss. Emily Rugg,female,21,0,0,10.5 +0,3,Mr. Mansouer Novel,male,28.5,0,0,7.2292 +1,2,Miss. Constance Mirium West,female,5,1,2,27.75 +0,3,Master. William Frederick Goodwin,male,11,5,2,46.9 +0,3,Mr. Orsen Sirayanian,male,22,0,0,7.2292 +1,1,Miss. Amelie Icard,female,38,0,0,80 +0,1,Mr. Henry Birkhardt Harris,male,45,1,0,83.475 +0,3,Master. Harald Skoog,male,4,3,2,27.9 +0,1,Mr. Albert A Stewart,male,64,0,0,27.7208 +1,3,Master. Gerios Moubarek,male,7,1,1,15.2458 +1,2,Mrs. (Elizabeth Ramell) Nye,female,29,0,0,10.5 +0,3,Mr. Ernest James Crease,male,19,0,0,8.1583 +1,3,Miss. Erna Alexandra Andersson,female,17,4,2,7.925 +0,3,Mr. Vincenz Kink,male,26,2,0,8.6625 +0,2,Mr. Stephen Curnow Jenkin,male,32,0,0,10.5 +0,3,Miss. Lillian Amy Goodwin,female,16,5,2,46.9 +0,2,Mr. Ambrose Jr Hood,male,21,0,0,73.5 +0,3,Mr. Apostolos Chronopoulos,male,26,1,0,14.4542 +1,3,Mr. Lee Bing,male,32,0,0,56.4958 +0,3,Mr. Sigurd Hansen Moen,male,25,0,0,7.65 +0,3,Mr. Ivan Staneff,male,23,0,0,7.8958 +0,3,Mr. Rahamin Haim Moutal,male,28,0,0,8.05 +1,2,Master. Alden Gates Caldwell,male,0.83,0,2,29 +1,3,Miss. Elizabeth Dowdell,female,30,0,0,12.475 +0,3,Mr. Achille Waelens,male,22,0,0,9 +1,3,Mr. Jan Baptist Sheerlinck,male,29,0,0,9.5 +1,3,Miss. Brigdet Delia McDermott,female,31,0,0,7.7875 +0,1,Mr. Francisco M Carrau,male,28,0,0,47.1 +1,2,Miss. Bertha Ilett,female,17,0,0,10.5 +1,3,Mrs. Karl Alfred (Maria Mathilda Gustafsson) Backstrom,female,33,3,0,15.85 +0,3,Mr. William Neal Ford,male,16,1,3,34.375 +0,3,Mr. Selman Francis Slocovski,male,20,0,0,8.05 +1,1,Miss. Mabel Helen Fortune,female,23,3,2,263 +0,3,Mr. Francesco Celotti,male,24,0,0,8.05 +0,3,Mr. Emil Christmann,male,29,0,0,8.05 +0,3,Mr. Paul Edvin Andreasson,male,20,0,0,7.8542 +0,1,Mr. Herbert Fuller Chaffee,male,46,1,0,61.175 +0,3,Mr. Bertram Frank Dean,male,26,1,2,20.575 +0,3,Mr. Daniel Coxon,male,59,0,0,7.25 +0,3,Mr. Charles Joseph Shorney,male,22,0,0,8.05 +0,1,Mr. George B Goldschmidt,male,71,0,0,34.6542 +1,1,Mr. William Bertram Greenfield,male,23,0,1,63.3583 +1,2,Mrs. John T (Ada Julia Bone) Doling,female,34,0,1,23 +0,2,Mr. Sinai Kantor,male,34,1,0,26 +0,3,Miss. Matilda Petranec,female,28,0,0,7.8958 +0,3,Mr. Pastcho Petroff,male,29,0,0,7.8958 +0,1,Mr. Richard Frasar White,male,21,0,1,77.2875 +0,3,Mr. Gustaf Joel Johansson,male,33,0,0,8.6542 +0,3,Mr. Anders Vilhelm Gustafsson,male,37,2,0,7.925 +0,3,Mr. Stoytcho Mionoff,male,28,0,0,7.8958 +1,3,Miss. Anna Kristine Salkjelsvik,female,21,0,0,7.65 +1,3,Mr. Albert Johan Moss,male,29,0,0,7.775 +0,3,Mr. Tido Rekic,male,38,0,0,7.8958 +1,3,Miss. Bertha Moran,female,28,1,0,24.15 +0,1,Mr. Walter Chamberlain Porter,male,47,0,0,52 +0,3,Miss. Hileni Zabour,female,14.5,1,0,14.4542 +0,3,Mr. David John Barton,male,22,0,0,8.05 +0,3,Miss. Katriina Jussila,female,20,1,0,9.825 +0,3,Miss. Malake Attalah,female,17,0,0,14.4583 +0,3,Mr. Edvard Pekoniemi,male,21,0,0,7.925 +0,3,Mr. Patrick Connors,male,70.5,0,0,7.75 +0,2,Mr. William John Robert Turpin,male,29,1,0,21 +0,1,Mr. Quigg Edmond Baxter,male,24,0,1,247.5208 +0,3,Miss. Ellis Anna Maria Andersson,female,2,4,2,31.275 +0,2,Mr. Stanley George Hickman,male,21,2,0,73.5 +0,3,Mr. Leonard Charles Moore,male,19,0,0,8.05 +0,2,Mr. Nicholas Nasser,male,32.5,1,0,30.0708 +1,2,Miss. Susan Webber,female,32.5,0,0,13 +0,1,Mr. Percival Wayland White,male,54,0,1,77.2875 +1,3,Master. Elias Nicola-Yarred,male,12,1,0,11.2417 +0,3,Mr. Martin McMahon,male,19,0,0,7.75 +1,3,Mr. Fridtjof Arne Madsen,male,24,0,0,7.1417 +1,3,Miss. Anna Peter,female,2,1,1,22.3583 +0,3,Mr. Johan Ekstrom,male,45,0,0,6.975 +0,3,Mr. Jozef Drazenoic,male,33,0,0,7.8958 +0,3,Mr. Domingos Fernandeo Coelho,male,20,0,0,7.05 +0,3,Mrs. Alexander A (Grace Charity Laury) Robins,female,47,1,0,14.5 +1,2,Mrs. Leopold (Mathilde Francoise Pede) Weisz,female,29,1,0,26 +0,2,Mr. Samuel James Hayden Sobey,male,25,0,0,13 +0,2,Mr. Emile Richard,male,23,0,0,15.0458 +1,1,Miss. Helen Monypeny Newsom,female,19,0,2,26.2833 +0,1,Mr. Jacques Heath Futrelle,male,37,1,0,53.1 +0,3,Mr. Olaf Elon Osen,male,16,0,0,9.2167 +0,1,Mr. Victor Giglio,male,24,0,0,79.2 +0,3,Mrs. Joseph (Sultana) Boulos,female,40,0,2,15.2458 +1,3,Miss. Anna Sofia Nysten,female,22,0,0,7.75 +1,3,Mrs. Pekka Pietari (Elin Matilda Dolck) Hakkarainen,female,24,1,0,15.85 +0,3,Mr. Jeremiah Burke,male,19,0,0,6.75 +0,2,Mr. Edgardo Samuel Andrew,male,18,0,0,11.5 +0,2,Mr. Joseph Charles Nicholls,male,19,1,1,36.75 +1,3,Mr. August Edvard Andersson,male,27,0,0,7.7958 +0,3,Miss. Robina Maggie Ford,female,9,2,2,34.375 +0,2,Mr. Michel Navratil,male,36.5,0,2,26 +0,2,Rev. Thomas Roussel Davids Byles,male,42,0,0,13 +0,2,Rev. Robert James Bateman,male,51,0,0,12.525 +1,1,Mrs. Thomas (Edith Wearne) Pears,female,22,1,0,66.6 +0,3,Mr. Alfonzo Meo,male,55.5,0,0,8.05 +0,3,Mr. Austin Blyler van Billiard,male,40.5,0,2,14.5 +0,3,Mr. Ole Martin Olsen,male,27,0,0,7.3125 +0,1,Mr. Charles Duane Williams,male,51,0,1,61.3792 +1,3,Miss. Katherine Gilnagh,female,16,0,0,7.7333 +0,3,Mr. Harry Corn,male,30,0,0,8.05 +0,3,Mr. Mile Smiljanic,male,37,0,0,8.6625 +0,3,Master. Thomas Henry Sage,male,5,8,2,69.55 +0,3,Mr. John Hatfield Cribb,male,44,0,1,16.1 +1,2,Mrs. James (Elizabeth Inglis Milne) Watt,female,40,0,0,15.75 +0,3,Mr. John Viktor Bengtsson,male,26,0,0,7.775 +0,3,Mr. Jovo Calic,male,17,0,0,8.6625 +0,3,Master. Eino Viljami Panula,male,1,4,1,39.6875 +1,3,Master. Frank John William Goldsmith,male,9,0,2,20.525 +1,1,Mrs. (Edith Martha Bowerman) Chibnall,female,48,0,1,55 +0,3,Mrs. William (Anna Bernhardina Karlsson) Skoog,female,45,1,4,27.9 +0,1,Mr. John D Baumann,male,60,0,0,25.925 +0,3,Mr. Lee Ling,male,28,0,0,56.4958 +0,1,Mr. Wyckoff Van der hoef,male,61,0,0,33.5 +0,3,Master. Arthur Rice,male,4,4,1,29.125 +1,3,Miss. Eleanor Ileen Johnson,female,1,1,1,11.1333 +0,3,Mr. Antti Wilhelm Sivola,male,21,0,0,7.925 +0,1,Mr. James Clinch Smith,male,56,0,0,30.6958 +0,3,Mr. Klas Albin Klasen,male,18,1,1,7.8542 +0,3,Master. Henry Forbes Lefebre,male,5,3,1,25.4667 +0,1,Miss. Ann Elizabeth Isham,female,50,0,0,28.7125 +0,2,Mr. Reginald Hale,male,30,0,0,13 +0,3,Mr. Lionel Leonard,male,36,0,0,0 +0,3,Miss. Constance Gladys Sage,female,8,8,2,69.55 +0,2,Mr. Rene Pernot,male,39,0,0,15.05 +0,3,Master. Clarence Gustaf Hugo Asplund,male,9,4,2,31.3875 +1,2,Master. Richard F Becker,male,1,2,1,39 +1,3,Miss. Luise Gretchen Kink-Heilmann,female,4,0,2,22.025 +0,1,Mr. Hugh Roscoe Rood,male,39,0,0,50 +1,3,Mrs. Thomas (Johanna Godfrey) O'Brien,female,26,1,0,15.5 +1,1,Mr. Charles Hallace Romaine,male,45,0,0,26.55 +0,3,Mr. John Bourke,male,40,1,1,15.5 +0,3,Mr. Stjepan Turcin,male,36,0,0,7.8958 +1,2,Mrs. (Rosa) Pinsky,female,32,0,0,13 +0,2,Mr. William Carbines,male,19,0,0,13 +1,3,Miss. Carla Christine Nielsine Andersen-Jensen,female,19,1,0,7.8542 +1,2,Master. Michel M Navratil,male,3,1,1,26 +1,1,Mrs. James Joseph (Margaret Tobin) Brown,female,44,0,0,27.7208 +1,1,Miss. Elise Lurette,female,58,0,0,146.5208 +0,3,Mr. Robert Mernagh,male,28,0,0,7.75 +0,3,Mr. Karl Siegwart Andreas Olsen,male,42,0,1,8.4042 +1,3,Miss. Margaret Madigan,female,21,0,0,7.75 +0,2,Miss. Henriette Yrois,female,24,0,0,13 +0,3,Mr. Nestor Cyriel Vande Walle,male,28,0,0,9.5 +0,3,Mr. Frederick Sage,male,17,8,2,69.55 +0,3,Mr. Jakob Alfred Johanson,male,34,0,0,6.4958 +0,3,Mr. Gerious Youseff,male,45.5,0,0,7.225 +1,3,Mr. Gurshon Cohen,male,18,0,0,8.05 +0,3,Miss. Telma Matilda Strom,female,2,0,1,10.4625 +0,3,Mr. Karl Alfred Backstrom,male,32,1,0,15.85 +1,3,Mr. Nassef Cassem Albimona,male,26,0,0,18.7875 +1,3,Miss. Helen Carr,female,16,0,0,7.75 +1,1,Mr. Henry Blank,male,40,0,0,31 +0,3,Mr. Ahmed Ali,male,24,0,0,7.05 +1,2,Miss. Clear Annie Cameron,female,35,0,0,21 +0,3,Mr. John Henry Perkin,male,22,0,0,7.25 +0,2,Mr. Hans Kristensen Givard,male,30,0,0,13 +0,3,Mr. Philip Kiernan,male,22,1,0,7.75 +1,1,Miss. Madeleine Newell,female,31,1,0,113.275 +1,3,Miss. Eliina Honkanen,female,27,0,0,7.925 +0,2,Mr. Sidney Samuel Jacobsohn,male,42,1,0,27 +1,1,Miss. Albina Bazzani,female,32,0,0,76.2917 +0,2,Mr. Walter Harris,male,30,0,0,10.5 +1,3,Mr. Victor Francis Sunderland,male,16,0,0,8.05 +0,2,Mr. James H Bracken,male,27,0,0,13 +0,3,Mr. George Henry Green,male,51,0,0,8.05 +0,3,Mr. Christo Nenkoff,male,22,0,0,7.8958 +1,1,Mr. Frederick Maxfield Hoyt,male,38,1,0,90 +0,3,Mr. Karl Ivar Sven Berglund,male,22,0,0,9.35 +1,2,Mr. William John Mellors,male,19,0,0,10.5 +0,3,Mr. John Hall Lovell,male,20.5,0,0,7.25 +0,2,Mr. Arne Jonas Fahlstrom,male,18,0,0,13 +0,3,Miss. Mathilde Lefebre,female,12,3,1,25.4667 +1,1,Mrs. Henry Birkhardt (Irene Wallach) Harris,female,35,1,0,83.475 +0,3,Mr. Bengt Edvin Larsson,male,29,0,0,7.775 +0,2,Mr. Ernst Adolf Sjostedt,male,59,0,0,13.5 +1,3,Miss. Lillian Gertrud Asplund,female,5,4,2,31.3875 +0,2,Mr. Robert William Norman Leyson,male,24,0,0,10.5 +0,3,Miss. Alice Phoebe Harknett,female,21,0,0,7.55 +0,2,Mr. Stephen Hold,male,44,1,0,26 +1,2,Miss. Marjorie Collyer,female,8,0,2,26.25 +0,2,Mr. Frederick William Pengelly,male,19,0,0,10.5 +0,2,Mr. George Henry Hunt,male,33,0,0,12.275 +0,3,Miss. Thamine Zabour,female,19,1,0,14.4542 +1,3,Miss. Katherine Murphy,female,18,1,0,15.5 +0,2,Mr. Reginald Charles Coleridge,male,29,0,0,10.5 +0,3,Mr. Matti Alexanteri Maenpaa,male,22,0,0,7.125 +0,3,Mr. Sleiman Attalah,male,30,0,0,7.225 +0,1,Dr. William Edward Minahan,male,44,2,0,90 +0,3,Miss. Agda Thorilda Viktoria Lindahl,female,25,0,0,7.775 +1,2,Mrs. William (Anna) Hamalainen,female,24,0,2,14.5 +1,1,Mr. Richard Leonard Beckwith,male,37,1,1,52.5542 +0,2,Rev. Ernest Courtenay Carter,male,54,1,0,26 +0,3,Mr. James George Reed,male,18,0,0,7.25 +0,3,Mrs. Wilhelm (Elna Matilda Persson) Strom,female,29,1,1,10.4625 +0,1,Mr. William Thomas Stead,male,62,0,0,26.55 +0,3,Mr. William Arthur Lobb,male,30,1,0,16.1 +0,3,Mrs. Viktor (Helena Wilhelmina) Rosblom,female,41,0,2,20.2125 +1,3,Mrs. Darwis (Hanne Youssef Razi) Touma,female,29,0,2,15.2458 +1,1,Mrs. Gertrude Maybelle Thorne,female,38,0,0,79.2 +1,1,Miss. Gladys Cherry,female,30,0,0,86.5 +1,1,Miss. Anna Ward,female,35,0,0,512.3292 +1,2,Mrs. (Lutie Davis) Parrish,female,50,0,1,26 +1,3,Master. Edvin Rojj Felix Asplund,male,3,4,2,31.3875 +0,1,Mr. Emil Taussig,male,52,1,1,79.65 +0,1,Mr. William Harrison,male,40,0,0,0 +0,3,Miss. Delia Henry,female,21,0,0,7.75 +0,2,Mr. David Reeves,male,36,0,0,10.5 +0,3,Mr. Ernesti Arvid Panula,male,16,4,1,39.6875 +1,3,Mr. Ernst Ulrik Persson,male,25,1,0,7.775 +1,1,Mrs. William Thompson (Edith Junkins) Graham,female,58,0,1,153.4625 +1,1,Miss. Amelia Bissette,female,35,0,0,135.6333 +0,1,Mr. Alexander Cairns,male,28,0,0,31 +1,3,Mr. William Henry Tornquist,male,25,0,0,0 +1,2,Mrs. (Elizabeth Anne Maidment) Mellinger,female,41,0,1,19.5 +0,1,Mr. Charles H Natsch,male,37,0,1,29.7 +1,3,Miss. Hanora Healy,female,33,0,0,7.75 +1,1,Miss. Kornelia Theodosia Andrews,female,63,1,0,77.9583 +0,3,Miss. Augusta Charlotta Lindblom,female,45,0,0,7.75 +0,2,Mr. Francis Parkes,male,21,0,0,0 +0,3,Master. Eric Rice,male,7,4,1,29.125 +1,3,Mrs. Stanton (Rosa Hunt) Abbott,female,35,1,1,20.25 +0,3,Mr. Frank Duane,male,65,0,0,7.75 +0,3,Mr. Nils Johan Goransson Olsson,male,28,0,0,7.8542 +0,3,Mr. Alfons de Pelsmaeker,male,16,0,0,9.5 +1,3,Mr. Edward Arthur Dorking,male,19,0,0,8.05 +0,1,Mr. Richard William Smith,male,57,0,0,26 +0,3,Mr. Ivan Stankovic,male,33,0,0,8.6625 +1,3,Mr. Theodore de Mulder,male,30,0,0,9.5 +0,3,Mr. Penko Naidenoff,male,22,0,0,7.8958 +1,2,Mr. Masabumi Hosono,male,42,0,0,13 +1,3,Miss. Kate Connolly,female,22,0,0,7.75 +1,1,Miss. Ellen Barber,female,26,0,0,78.85 +1,1,Mrs. Dickinson H (Helen Walton) Bishop,female,19,1,0,91.0792 +0,2,Mr. Rene Jacques Levy,male,36,0,0,12.875 +0,3,Miss. Aloisia Haas,female,24,0,0,8.85 +0,3,Mr. Ivan Mineff,male,24,0,0,7.8958 +0,1,Mr. Ervin G Lewy,male,30,0,0,27.7208 +0,3,Mr. Mansour Hanna,male,23.5,0,0,7.2292 +0,1,Miss. Helen Loraine Allison,female,2,1,2,151.55 +1,1,Mr. Adolphe Saalfeld,male,47,0,0,30.5 +1,1,Mrs. James (Helene DeLaudeniere Chaput) Baxter,female,50,0,1,247.5208 +1,3,Miss. Anna Katherine Kelly,female,20,0,0,7.75 +1,3,Mr. Bernard McCoy,male,24,2,0,23.25 +0,3,Mr. William Cahoone Jr Johnson,male,19,0,0,0 +1,2,Miss. Nora A Keane,female,46,0,0,12.35 +0,3,Mr. Howard Hugh Williams,male,28,0,0,8.05 +1,1,Master. Hudson Trevor Allison,male,0.92,1,2,151.55 +1,1,Miss. Margaret Fleming,female,42,0,0,110.8833 +1,1,Mrs. Victor de Satode (Maria Josefa Perez de Soto y Vallejo) Penasco y Castellana,female,17,1,0,108.9 +0,2,Mr. Samuel Abelson,male,30,1,0,24 +1,1,Miss. Laura Mabel Francatelli,female,30,0,0,56.9292 +1,1,Miss. Margaret Bechstein Hays,female,24,0,0,83.1583 +1,1,Miss. Emily Borie Ryerson,female,18,2,2,262.375 +0,2,Mrs. William (Anna Sylfven) Lahtinen,female,26,1,1,26 +0,3,Mr. Ignjac Hendekovic,male,28,0,0,7.8958 +0,2,Mr. Benjamin Hart,male,43,1,1,26.25 +1,3,Miss. Helmina Josefina Nilsson,female,26,0,0,7.8542 +1,2,Mrs. Sinai (Miriam Sternin) Kantor,female,24,1,0,26 +0,2,Dr. Ernest Moraweck,male,54,0,0,14 +1,1,Miss. Mary Natalie Wick,female,31,0,2,164.8667 +1,1,Mrs. Frederic Oakley (Margaretta Corning Stone) Spedden,female,40,1,1,134.5 +0,3,Mr. Samuel Dennis,male,22,0,0,7.25 +0,3,Mr. Yoto Danoff,male,27,0,0,7.8958 +1,2,Miss. Hilda Mary Slayter,female,30,0,0,12.35 +1,2,Mrs. Albert Francis (Sylvia Mae Harbaugh) Caldwell,female,22,1,1,29 +0,3,Mr. George John Jr Sage,male,20,8,2,69.55 +1,1,Miss. Marie Grice Young,female,36,0,0,135.6333 +0,3,Mr. Johan Hansen Nysveen,male,61,0,0,6.2375 +1,2,Mrs. (Ada E Hall) Ball,female,36,0,0,13 +1,3,Mrs. Frank John (Emily Alice Brown) Goldsmith,female,31,1,1,20.525 +1,1,Miss. Jean Gertrude Hippach,female,16,0,1,57.9792 +1,3,Miss. Agnes McCoy,female,28,2,0,23.25 +0,1,Mr. Austen Partner,male,45.5,0,0,28.5 +0,1,Mr. George Edward Graham,male,38,0,1,153.4625 +0,3,Mr. Leo Edmondus Vander Planke,male,16,2,0,18 +1,1,Mrs. Henry William (Clara Heinsheimer) Frauenthal,female,42,1,0,133.65 +0,3,Mr. Mitto Denkoff,male,30,0,0,7.8958 +0,1,Mr. Thomas Clinton Pears,male,29,1,0,66.6 +1,1,Miss. Elizabeth Margaret Burns,female,41,0,0,134.5 +1,3,Mr. Karl Edwart Dahl,male,45,0,0,8.05 +0,1,Mr. Stephen Weart Blackwell,male,45,0,0,35.5 +1,2,Master. Edmond Roger Navratil,male,2,1,1,26 +1,1,Miss. Alice Elizabeth Fortune,female,24,3,2,263 +0,2,Mr. Erik Gustaf Collander,male,28,0,0,13 +0,2,Mr. Charles Frederick Waddington Sedgwick,male,25,0,0,13 +0,2,Mr. Stanley Hubert Fox,male,36,0,0,13 +1,2,Miss. Amelia Brown,female,24,0,0,13 +1,2,Miss. Marion Elsie Smith,female,40,0,0,13 +1,3,Mrs. Thomas Henry (Mary E Finck) Davison,female,34,1,0,16.1 +1,3,Master. William Loch Coutts,male,3,1,1,15.9 +0,3,Mr. Jovan Dimic,male,42,0,0,8.6625 +0,3,Mr. Nils Martin Odahl,male,23,0,0,9.225 +0,1,Mr. Fletcher Fellows Williams-Lambert,male,43,0,0,35 +0,3,Mr. Tannous Elias,male,15,1,1,7.2292 +0,3,Mr. Josef Arnold-Franchi,male,25,1,0,17.8 +0,3,Mr. Wazli Yousif,male,23,0,0,7.225 +0,3,Mr. Leo Peter Vanden Steen,male,28,0,0,9.5 +1,1,Miss. Elsie Edith Bowerman,female,22,0,1,55 +0,2,Miss. Annie Clemmer Funk,female,38,0,0,13 +1,3,Miss. Mary McGovern,female,22,0,0,7.8792 +1,3,Miss. Helen Mary Mockler,female,23,0,0,7.8792 +0,3,Mr. Wilhelm Skoog,male,40,1,4,27.9 +0,2,Mr. Sebastiano del Carlo,male,29,1,0,27.7208 +0,3,Mrs. (Catherine David) Barbara,female,45,0,1,14.4542 +0,3,Mr. Adola Asim,male,35,0,0,7.05 +0,3,Mr. Thomas O'Brien,male,27,1,0,15.5 +0,3,Mr. Mauritz Nils Martin Adahl,male,30,0,0,7.25 +1,1,Mrs. Frank Manley (Anna Sophia Atkinson) Warren,female,60,1,0,75.25 +1,3,Mrs. (Mantoura Boulos) Moussa,female,35,0,0,7.2292 +1,3,Miss. Annie Jermyn,female,22,0,0,7.75 +1,1,Mme. Leontine Pauline Aubart,female,24,0,0,69.3 +1,1,Mr. George Achilles Harder,male,25,1,0,55.4417 +0,3,Mr. Jakob Alfred Wiklund,male,18,1,0,6.4958 +0,3,Mr. William Thomas Beavan,male,19,0,0,8.05 +0,1,Mr. Sante Ringhini,male,22,0,0,135.6333 +0,3,Miss. Stina Viola Palsson,female,3,3,1,21.075 +1,1,Mrs. Edgar Joseph (Leila Saks) Meyer,female,25,1,0,82.1708 +1,3,Miss. Aurora Adelia Landergren,female,22,0,0,7.25 +0,1,Mr. Harry Elkins Widener,male,27,0,2,211.5 +0,3,Mr. Tannous Betros,male,20,0,0,4.0125 +0,3,Mr. Karl Gideon Gustafsson,male,19,0,0,7.775 +1,1,Miss. Rosalie Bidois,female,42,0,0,227.525 +1,3,Miss. Maria Nakid,female,1,0,2,15.7417 +0,3,Mr. Juho Tikkanen,male,32,0,0,7.925 +1,1,Mrs. Alexander Oskar (Mary Aline Towner) Holverson,female,35,1,0,52 +0,3,Mr. Vasil Plotcharsky,male,27,0,0,7.8958 +0,2,Mr. Charles Henry Davies,male,18,0,0,73.5 +0,3,Master. Sidney Leonard Goodwin,male,1,5,2,46.9 +1,2,Miss. Kate Buss,female,36,0,0,13 +0,3,Mr. Matthew Sadlier,male,19,0,0,7.7292 +1,2,Miss. Bertha Lehmann,female,17,0,0,12 +1,1,Mr. William Ernest Carter,male,36,1,2,120 +1,3,Mr. Carl Olof Jansson,male,21,0,0,7.7958 +0,3,Mr. Johan Birger Gustafsson,male,28,2,0,7.925 +1,1,Miss. Marjorie Newell,female,23,1,0,113.275 +1,3,Mrs. Hjalmar (Agnes Charlotta Bengtsson) Sandstrom,female,24,0,2,16.7 +0,3,Mr. Erik Johansson,male,22,0,0,7.7958 +0,3,Miss. Elina Olsson,female,31,0,0,7.8542 +0,2,Mr. Peter David McKane,male,46,0,0,26 +0,2,Dr. Alfred Pain,male,23,0,0,10.5 +1,2,Mrs. William H (Jessie L) Trout,female,28,0,0,12.65 +1,3,Mr. Juha Niskanen,male,39,0,0,7.925 +0,3,Mr. John Adams,male,26,0,0,8.05 +0,3,Miss. Mari Aina Jussila,female,21,1,0,9.825 +0,3,Mr. Pekka Pietari Hakkarainen,male,28,1,0,15.85 +0,3,Miss. Marija Oreskovic,female,20,0,0,8.6625 +0,2,Mr. Shadrach Gale,male,34,1,0,21 +0,3,Mr. Carl/Charles Peter Widegren,male,51,0,0,7.75 +1,2,Master. William Rowe Richards,male,3,1,1,18.75 +0,3,Mr. Hans Martin Monsen Birkeland,male,21,0,0,7.775 +0,3,Miss. Ida Lefebre,female,3,3,1,25.4667 +0,3,Mr. Todor Sdycoff,male,42,0,0,7.8958 +0,3,Mr. Henry Hart,male,27,0,0,6.8583 +1,1,Miss. Daisy E Minahan,female,33,1,0,90 +0,2,Mr. Alfred Fleming Cunningham,male,22,0,0,0 +1,3,Mr. Johan Julian Sundman,male,44,0,0,7.925 +0,3,Mrs. Thomas (Annie Louise Rowley) Meek,female,32,0,0,8.05 +1,2,Mrs. James Vivian (Lulu Thorne Christian) Drew,female,34,1,1,32.5 +1,2,Miss. Lyyli Karoliina Silven,female,18,0,2,13 +0,2,Mr. William John Matthews,male,30,0,0,13 +0,3,Miss. Catharina Van Impe,female,10,0,2,24.15 +0,3,Mr. David Charters,male,21,0,0,7.7333 +0,3,Mr. Leo Zimmerman,male,29,0,0,7.875 +0,3,Mrs. Ernst Gilbert (Anna Sigrid Maria Brogren) Danbom,female,28,1,1,14.4 +0,3,Mr. Viktor Richard Rosblom,male,18,1,1,20.2125 +0,3,Mr. Phillippe Wiseman,male,54,0,0,7.25 +1,2,Mrs. Charles V (Ada Maria Winfield) Clarke,female,28,1,0,26 +1,2,Miss. Kate Florence Phillips,female,19,0,0,26 +0,3,Mr. James Flynn,male,28,0,0,7.75 +1,3,Mr. Berk (Berk Trembisky) Pickard,male,32,0,0,8.05 +1,1,Mr. Mauritz Hakan Bjornstrom-Steffansson,male,28,0,0,26.55 +1,3,Mrs. Percival (Florence Kate White) Thorneycroft,female,33,1,0,16.1 +1,2,Mrs. Charles Alexander (Alice Adelaide Slow) Louch,female,42,1,0,26 +0,3,Mr. Nikolai Erland Kallio,male,17,0,0,7.125 +0,1,Mr. William Baird Silvey,male,50,1,0,55.9 +1,1,Miss. Lucile Polk Carter,female,14,1,2,120 +0,3,Miss. Doolina Margaret Ford,female,21,2,2,34.375 +1,2,Mrs. Sidney (Emily Hocking) Richards,female,24,2,3,18.75 +0,1,Mr. Mark Fortune,male,64,1,4,263 +0,2,Mr. Johan Henrik Johannesson Kvillner,male,31,0,0,10.5 +1,2,Mrs. Benjamin (Esther Ada Bloomfield) Hart,female,45,1,1,26.25 +0,3,Mr. Leon Hampe,male,20,0,0,9.5 +0,3,Mr. Johan Emil Petterson,male,25,1,0,7.775 +1,2,Ms. Encarnacion Reynaldo,female,28,0,0,13 +1,3,Mr. Bernt Johannesen-Bratthammer,male,29,0,0,8.1125 +1,1,Master. Washington Dodge,male,4,0,2,81.8583 +1,2,Miss. Madeleine Violet Mellinger,female,13,0,1,19.5 +1,1,Mr. Frederic Kimber Seward,male,34,0,0,26.55 +1,3,Miss. Marie Catherine Baclini,female,5,2,1,19.2583 +1,1,Major. Arthur Godfrey Peuchen,male,52,0,0,30.5 +0,2,Mr. Edwy Arthur West,male,36,1,2,27.75 +0,3,Mr. Ingvald Olai Olsen Hagland,male,28,1,0,19.9667 +0,1,Mr. Benjamin Laventall Foreman,male,30,0,0,27.75 +1,1,Mr. Samuel L Goldenberg,male,49,1,0,89.1042 +0,3,Mr. Joseph Peduzzi,male,24,0,0,8.05 +1,3,Mr. Ivan Jalsevac,male,29,0,0,7.8958 +0,1,Mr. Francis Davis Millet,male,65,0,0,26.55 +1,1,Mrs. Frederick R (Marion) Kenyon,female,41,1,0,51.8625 +1,2,Miss. Ellen Toomey,female,50,0,0,10.5 +0,3,Mr. Maurice O'Connor,male,17,0,0,7.75 +1,1,Mr. Harry Anderson,male,48,0,0,26.55 +0,3,Mr. William Morley,male,34,0,0,8.05 +0,1,Mr. Arthur H Gee,male,47,0,0,38.5 +0,2,Mr. Jacob Christian Milling,male,48,0,0,13 +0,3,Mr. Simon Maisner,male,34,0,0,8.05 +0,3,Mr. Manuel Estanslas Goncalves,male,38,0,0,7.05 +0,2,Mr. William Campbell,male,21,0,0,0 +0,1,Mr. John Montgomery Smart,male,56,0,0,26.55 +0,3,Mr. James Scanlan,male,22,0,0,7.725 +1,3,Miss. Helene Barbara Baclini,female,0.75,2,1,19.2583 +0,3,Mr. Arthur Keefe,male,39,0,0,7.25 +0,3,Mr. Luka Cacic,male,38,0,0,8.6625 +1,2,Mrs. Edwy Arthur (Ada Mary Worth) West,female,33,1,2,27.75 +1,2,Mrs. Amin S (Marie Marthe Thuillard) Jerwan,female,23,0,0,13.7917 +0,3,Miss. Ida Sofia Strandberg,female,22,0,0,9.8375 +0,1,Mr. George Quincy Clifford,male,40,0,0,52 +0,2,Mr. Peter Henry Renouf,male,34,1,0,21 +0,3,Mr. Lewis Richard Braund,male,29,1,0,7.0458 +0,3,Mr. Nils August Karlsson,male,22,0,0,7.5208 +1,3,Miss. Hildur E Hirvonen,female,2,0,1,12.2875 +0,3,Master. Harold Victor Goodwin,male,9,5,2,46.9 +0,2,Mr. Anthony Wood Frost,male,37,0,0,0 +0,3,Mr. Richard Henry Rouse,male,50,0,0,8.05 +1,3,Mrs. (Hedwig) Turkula,female,63,0,0,9.5875 +1,1,Mr. Dickinson H Bishop,male,25,1,0,91.0792 +0,3,Miss. Jeannie Lefebre,female,8,3,1,25.4667 +1,1,Mrs. Frederick Maxfield (Jane Anne Forby) Hoyt,female,35,1,0,90 +0,1,Mr. Edward Austin Kent,male,58,0,0,29.7 +0,3,Mr. Francis William Somerton,male,30,0,0,8.05 +1,3,Master. Eden Leslie Coutts,male,9,1,1,15.9 +0,3,Mr. Konrad Mathias Reiersen Hagland,male,19,1,0,19.9667 +0,3,Mr. Einar Windelov,male,21,0,0,7.25 +0,1,Mr. Harry Markland Molson,male,55,0,0,30.5 +0,1,Mr. Ramon Artagaveytia,male,71,0,0,49.5042 +0,3,Mr. Edward Roland Stanley,male,21,0,0,8.05 +0,3,Mr. Gerious Yousseff,male,26,0,0,14.4583 +1,1,Miss. Elizabeth Mussey Eustis,female,54,1,0,78.2667 +0,3,Mr. Frederick William Shellard,male,55,0,0,15.1 +0,1,Mrs. Hudson J C (Bessie Waldo Daniels) Allison,female,25,1,2,151.55 +0,3,Mr. Olof Svensson,male,24,0,0,7.7958 +0,3,Mr. Petar Calic,male,17,0,0,8.6625 +0,3,Miss. Mary Canavan,female,21,0,0,7.75 +0,3,Miss. Bridget Mary O'Sullivan,female,21,0,0,7.6292 +0,3,Miss. Kristina Sofia Laitinen,female,37,0,0,9.5875 +1,1,Miss. Roberta Maioni,female,16,0,0,86.5 +0,1,Mr. Victor de Satode Penasco y Castellana,male,18,1,0,108.9 +1,2,Mrs. Frederick Charles (Jane Richards) Quick,female,33,0,2,26 +1,1,Mr. George Bradley,male,37,0,0,26.55 +0,3,Mr. Henry Margido Olsen,male,28,0,0,22.525 +1,3,Mr. Fang Lang,male,26,0,0,56.4958 +1,3,Mr. Eugene Patrick Daly,male,29,0,0,7.75 +0,3,Mr. James Webber,male,66,0,0,8.05 +1,1,Mr. James Robert McGough,male,36,0,0,26.2875 +1,1,Mrs. Martin (Elizabeth L. Barrett) Rothschild,female,54,1,0,59.4 +0,3,Mr. Satio Coleff,male,24,0,0,7.4958 +0,1,Mr. William Anderson Walker,male,47,0,0,34.0208 +1,2,Mrs. (Amelia Milley) Lemore,female,34,0,0,10.5 +0,3,Mr. Patrick Ryan,male,30,0,0,24.15 +1,2,Mrs. William A (Florence Agnes Hughes) Angle,female,36,1,0,26 +0,3,Mr. Stefo Pavlovic,male,32,0,0,7.8958 +1,1,Miss. Anne Perreault,female,30,0,0,93.5 +0,3,Mr. Janko Vovk,male,22,0,0,7.8958 +0,3,Mr. Sarkis Lahoud,male,35,0,0,7.225 +1,1,Mrs. Louis Albert (Ida Sophia Fischer) Hippach,female,44,0,1,57.9792 +0,3,Mr. Fared Kassem,male,18,0,0,7.2292 +0,3,Mr. James Farrell,male,40.5,0,0,7.75 +1,2,Miss. Lucy Ridsdale,female,50,0,0,10.5 +0,1,Mr. John Farthing,male,49,0,0,221.7792 +0,3,Mr. Johan Werner Salonen,male,39,0,0,7.925 +0,2,Mr. Richard George Hocking,male,23,2,1,11.5 +1,2,Miss. Phyllis May Quick,female,2,1,1,26 +0,3,Mr. Nakli Toufik,male,17,0,0,7.2292 +0,3,Mr. Joseph Jr Elias,male,17,1,1,7.2292 +1,3,Mrs. Catherine (Catherine Rizk) Peter,female,24,0,2,22.3583 +0,3,Miss. Marija Cacic,female,30,0,0,8.6625 +1,2,Miss. Eva Miriam Hart,female,7,0,2,26.25 +0,1,Major. Archibald Willingham Butt,male,45,0,0,26.55 +1,1,Miss. Bertha LeRoy,female,30,0,0,106.425 +0,3,Mr. Samuel Beard Risien,male,69,0,0,14.5 +1,1,Miss. Hedwig Margaritha Frolicher,female,22,0,2,49.5 +1,1,Miss. Harriet R Crosby,female,36,0,2,71 +0,3,Miss. Ingeborg Constanzia Andersson,female,9,4,2,31.275 +0,3,Miss. Sigrid Elisabeth Andersson,female,11,4,2,31.275 +1,2,Mr. Edward Beane,male,32,1,0,26 +0,1,Mr. Walter Donald Douglas,male,50,1,0,106.425 +0,1,Mr. Arthur Ernest Nicholson,male,64,0,0,26 +1,2,Mrs. Edward (Ethel Clarke) Beane,female,19,1,0,26 +1,2,Mr. Julian Padro y Manent,male,27,0,0,13.8625 +0,3,Mr. Frank John Goldsmith,male,33,1,1,20.525 +1,2,Master. John Morgan Jr Davies,male,8,1,1,36.75 +1,1,Mr. John Borland Jr Thayer,male,17,0,2,110.8833 +0,2,Mr. Percival James R Sharp,male,27,0,0,26 +0,3,Mr. Timothy O'Brien,male,21,0,0,7.8292 +1,3,Mr. Fahim Leeni,male,22,0,0,7.225 +1,3,Miss. Velin Ohman,female,22,0,0,7.775 +0,1,Mr. George Wright,male,62,0,0,26.55 +1,1,Lady. (Lucille Christiana Sutherland)Duff Gordon,female,48,1,0,39.6 +0,1,Mr. Victor Robbins,male,45,0,0,227.525 +1,1,Mrs. Emil (Tillie Mandelbaum) Taussig,female,39,1,1,79.65 +1,3,Mrs. Guillaume Joseph (Emma) de Messemaeker,female,36,1,0,17.4 +0,3,Mr. Thomas Rowan Morrow,male,30,0,0,7.75 +0,3,Mr. Husein Sivic,male,40,0,0,7.8958 +0,2,Mr. Robert Douglas Norman,male,28,0,0,13.5 +0,3,Mr. John Simmons,male,40,0,0,8.05 +0,3,Miss. (Marion Ogden) Meanwell,female,62,0,0,8.05 +0,3,Mr. Alfred J Davies,male,24,2,0,24.15 +0,3,Mr. Ilia Stoytcheff,male,19,0,0,7.8958 +0,3,Mrs. Nils (Alma Cornelia Berglund) Palsson,female,29,0,4,21.075 +0,3,Mr. Tannous Doharr,male,28,0,0,7.2292 +1,3,Mr. Carl Jonsson,male,32,0,0,7.8542 +1,2,Mr. George Harris,male,62,0,0,10.5 +1,1,Mrs. Edward Dale (Charlotte Lamson) Appleton,female,53,2,0,51.4792 +1,1,Mr. John Irwin Flynn,male,36,0,0,26.3875 +1,3,Miss. Mary Kelly,female,22,0,0,7.75 +0,3,Mr. Alfred George John Rush,male,16,0,0,8.05 +0,3,Mr. George Patchett,male,19,0,0,14.5 +1,2,Miss. Ethel Garside,female,34,0,0,13 +1,1,Mrs. William Baird (Alice Munger) Silvey,female,39,1,0,55.9 +0,3,Mrs. Joseph (Maria Elias) Caram,female,18,1,0,14.4583 +1,3,Mr. Eiriik Jussila,male,32,0,0,7.925 +1,2,Miss. Julie Rachel Christy,female,25,1,1,30 +1,1,Mrs. John Borland (Marian Longstreth Morris) Thayer,female,39,1,1,110.8833 +0,2,Mr. William James Downton,male,54,0,0,26 +0,1,Mr. John Hugo Ross,male,36,0,0,40.125 +0,3,Mr. Uscher Paulner,male,16,0,0,8.7125 +1,1,Miss. Ruth Taussig,female,18,0,2,79.65 +0,2,Mr. John Denzil Jarvis,male,47,0,0,15 +1,1,Mr. Maxmillian Frolicher-Stehli,male,60,1,1,79.2 +0,3,Mr. Eliezer Gilinski,male,22,0,0,8.05 +0,3,Mr. Joseph Murdlin,male,22,0,0,8.05 +0,3,Mr. Matti Rintamaki,male,35,0,0,7.125 +1,1,Mrs. Walter Bertram (Martha Eustis) Stephenson,female,52,1,0,78.2667 +0,3,Mr. William James Elsbury,male,47,0,0,7.25 +0,3,Miss. Mary Bourke,female,40,0,2,7.75 +0,2,Mr. John Henry Chapman,male,37,1,0,26 +0,3,Mr. Jean Baptiste Van Impe,male,36,1,1,24.15 +1,2,Miss. Jessie Wills Leitch,female,31,0,0,33 +0,3,Mr. Alfred Johnson,male,49,0,0,0 +0,3,Mr. Hanna Boulos,male,18,0,0,7.225 +1,1,Sir. Cosmo Edmund Duff Gordon,male,49,1,0,56.9292 +1,2,Mrs. Sidney Samuel (Amy Frances Christy) Jacobsohn,female,24,2,1,27 +0,3,Mr. Petco Slabenoff,male,42,0,0,7.8958 +0,1,Mr. Charles H Harrington,male,37,0,0,42.4 +0,3,Mr. Ernst William Torber,male,44,0,0,8.05 +1,1,Mr. Harry Homer,male,35,0,0,26.55 +0,3,Mr. Edvard Bengtsson Lindell,male,36,1,0,15.55 +0,3,Mr. Milan Karaic,male,30,0,0,7.8958 +1,1,Mr. Robert Williams Daniel,male,27,0,0,30.5 +1,2,Mrs. Joseph (Juliette Marie Louise Lafargue) Laroche,female,22,1,2,41.5792 +1,1,Miss. Elizabeth W Shutes,female,40,0,0,153.4625 +0,3,Mrs. Anders Johan (Alfrida Konstantia Brogren) Andersson,female,39,1,5,31.275 +0,3,Mr. Jose Neto Jardin,male,21,0,0,7.05 +1,3,Miss. Margaret Jane Murphy,female,18,1,0,15.5 +0,3,Mr. John Horgan,male,22,0,0,7.75 +0,3,Mr. William Alfred Brocklebank,male,35,0,0,8.05 +1,2,Miss. Alice Herman,female,24,1,2,65 +0,3,Mr. Ernst Gilbert Danbom,male,34,1,1,14.4 +0,3,Mrs. William Arthur (Cordelia K Stanlick) Lobb,female,26,1,0,16.1 +1,2,Miss. Marion Louise Becker,female,4,2,1,39 +0,2,Mr. Lawrence Gavey,male,26,0,0,10.5 +0,3,Mr. Antoni Yasbeck,male,27,1,0,14.4542 +1,1,Mr. Edwin Nelson Jr Kimball,male,42,1,0,52.5542 +1,3,Mr. Sahid Nakid,male,20,1,1,15.7417 +0,3,Mr. Henry Damsgaard Hansen,male,21,0,0,7.8542 +0,3,Mr. David John Bowen,male,21,0,0,16.1 +0,1,Mr. Frederick Sutton,male,61,0,0,32.3208 +0,2,Rev. Charles Leonard Kirkland,male,57,0,0,12.35 +1,1,Miss. Gretchen Fiske Longley,female,21,0,0,77.9583 +0,3,Mr. Guentcho Bostandyeff,male,26,0,0,7.8958 +0,3,Mr. Patrick D O'Connell,male,18,0,0,7.7333 +1,1,Mr. Algernon Henry Wilson Barkworth,male,80,0,0,30 +0,3,Mr. Johan Svensson Lundahl,male,51,0,0,7.0542 +1,1,Dr. Max Stahelin-Maeglin,male,32,0,0,30.5 +0,1,Mr. William Henry Marsh Parr,male,30,0,0,0 +0,3,Miss. Mabel Skoog,female,9,3,2,27.9 +1,2,Miss. Mary Davis,female,28,0,0,13 +0,3,Mr. Antti Gustaf Leinonen,male,32,0,0,7.925 +0,2,Mr. Harvey Collyer,male,31,1,1,26.25 +0,3,Mrs. Juha (Maria Emilia Ojala) Panula,female,41,0,5,39.6875 +0,3,Mr. Percival Thorneycroft,male,37,1,0,16.1 +0,3,Mr. Hans Peder Jensen,male,20,0,0,7.8542 +1,1,Mlle. Emma Sagesser,female,24,0,0,69.3 +0,3,Miss. Margit Elizabeth Skoog,female,2,3,2,27.9 +1,3,Mr. Choong Foo,male,32,0,0,56.4958 +1,3,Miss. Eugenie Baclini,female,0.75,2,1,19.2583 +1,1,Mr. Henry Sleeper Harper,male,48,1,0,76.7292 +0,3,Mr. Liudevit Cor,male,19,0,0,7.8958 +1,1,Col. Oberst Alfons Simonius-Blumer,male,56,0,0,35.5 +0,3,Mr. Edward Willey,male,21,0,0,7.55 +1,3,Miss. Amy Zillah Elsie Stanley,female,23,0,0,7.55 +0,3,Mr. Mito Mitkoff,male,23,0,0,7.8958 +1,2,Miss. Elsie Doling,female,18,0,1,23 +0,3,Mr. Johannes Halvorsen Kalvik,male,21,0,0,8.4333 +1,3,Miss. Hanora O'Leary,female,16,0,0,7.8292 +0,3,Miss. Hanora Hegarty,female,18,0,0,6.75 +0,2,Mr. Leonard Mark Hickman,male,24,2,0,73.5 +0,3,Mr. Alexander Radeff,male,27,0,0,7.8958 +0,3,Mrs. John (Catherine) Bourke,female,32,1,1,15.5 +0,2,Mr. George Floyd Eitemiller,male,23,0,0,13 +0,1,Mr. Arthur Webster Newell,male,58,0,2,113.275 +1,1,Dr. Henry William Frauenthal,male,50,2,0,133.65 +0,3,Mr. Mohamed Badt,male,40,0,0,7.225 +0,1,Mr. Edward Pomeroy Colley,male,47,0,0,25.5875 +0,3,Mr. Peju Coleff,male,36,0,0,7.4958 +1,3,Mr. Eino William Lindqvist,male,20,1,0,7.925 +0,2,Mr. Lewis Hickman,male,32,2,0,73.5 +0,2,Mr. Reginald Fenton Butler,male,25,0,0,13 +0,3,Mr. Knud Paust Rommetvedt,male,49,0,0,7.775 +0,3,Mr. Jacob Cook,male,43,0,0,8.05 +1,1,Mrs. Elmer Zebley (Juliet Cummins Wright) Taylor,female,48,1,0,52 +1,2,Mrs. Thomas William Solomon (Elizabeth Catherine Ford) Brown,female,40,1,1,39 +0,1,Mr. Thornton Davidson,male,31,1,0,52 +0,2,Mr. Henry Michael Mitchell,male,70,0,0,10.5 +1,2,Mr. Charles Wilhelms,male,31,0,0,13 +0,2,Mr. Ennis Hastings Watson,male,19,0,0,0 +0,3,Mr. Gustaf Hjalmar Edvardsson,male,18,0,0,7.775 +0,3,Mr. Frederick Charles Sawyer,male,24.5,0,0,8.05 +1,3,Miss. Anna Sofia Turja,female,18,0,0,9.8417 +0,3,Mrs. Frederick (Augusta Tyler) Goodwin,female,43,1,6,46.9 +1,1,Mr. Thomas Drake Martinez Cardeza,male,36,0,1,512.3292 +0,3,Miss. Katie Peters,female,28,0,0,8.1375 +1,1,Mr. Hammad Hassab,male,27,0,0,76.7292 +0,3,Mr. Thor Anderson Olsvigen,male,20,0,0,9.225 +0,3,Mr. Charles Edward Goodwin,male,14,5,2,46.9 +0,2,Mr. Thomas William Solomon Brown,male,60,1,1,39 +0,2,Mr. Joseph Philippe Lemercier Laroche,male,25,1,2,41.5792 +0,3,Mr. Jaako Arnold Panula,male,14,4,1,39.6875 +0,3,Mr. Branko Dakic,male,19,0,0,10.1708 +0,3,Mr. Eberhard Thelander Fischer,male,18,0,0,7.7958 +1,1,Miss. Georgette Alexandra Madill,female,15,0,1,211.3375 +1,1,Mr. Albert Adrian Dick,male,31,1,0,57 +1,3,Miss. Manca Karun,female,4,0,1,13.4167 +1,3,Mr. Ali Lam,male,37,0,0,56.4958 +0,3,Mr. Khalil Saad,male,25,0,0,7.225 +0,1,Col. John Weir,male,60,0,0,26.55 +0,2,Mr. Charles Henry Chapman,male,52,0,0,13.5 +0,3,Mr. James Kelly,male,44,0,0,8.05 +1,3,Miss. Katherine Mullens,female,19,0,0,7.7333 +0,1,Mr. John Borland Thayer,male,49,1,1,110.8833 +0,3,Mr. Adolf Mathias Nicolai Olsen Humblen,male,42,0,0,7.65 +1,1,Mrs. John Jacob (Madeleine Talmadge Force) Astor,female,18,1,0,227.525 +1,1,Mr. Spencer Victor Silverthorne,male,35,0,0,26.2875 +0,3,Miss. Saiide Barbara,female,18,0,1,14.4542 +0,3,Mr. Martin Gallagher,male,25,0,0,7.7417 +0,3,Mr. Henrik Juul Hansen,male,26,1,0,7.8542 +0,2,Mr. Henry Samuel Morley,male,39,0,0,26 +1,2,Mrs. Florence Kelly,female,45,0,0,13.5 +1,1,Mr. Edward Pennington Calderhead,male,42,0,0,26.2875 +1,1,Miss. Alice Cleaver,female,22,0,0,151.55 +1,3,Master. Halim Gonios Moubarek,male,4,1,1,15.2458 +1,1,Mlle. Berthe Antonine Mayne,female,24,0,0,49.5042 +0,1,Mr. Herman Klaber,male,41,0,0,26.55 +1,1,Mr. Elmer Zebley Taylor,male,48,1,0,52 +0,3,Mr. August Viktor Larsson,male,29,0,0,9.4833 +0,2,Mr. Samuel Greenberg,male,52,0,0,13 +0,3,Mr. Peter Andreas Lauritz Andersen Soholt,male,19,0,0,7.65 +1,1,Miss. Caroline Louise Endres,female,38,0,0,227.525 +1,2,Miss. Edwina Celia Troutt,female,27,0,0,10.5 +0,3,Mr. Malkolm Joackim Johnson,male,33,0,0,7.775 +1,2,Miss. Annie Jessie Harper,female,6,0,1,33 +0,3,Mr. Svend Lauritz Jensen,male,17,1,0,7.0542 +0,2,Mr. William Henry Gillespie,male,34,0,0,13 +0,2,Mr. Henry Price Hodges,male,50,0,0,13 +1,1,Mr. Norman Campbell Chambers,male,27,1,0,53.1 +0,3,Mr. Luka Oreskovic,male,20,0,0,8.6625 +1,2,Mrs. Peter Henry (Lillian Jefferys) Renouf,female,30,3,0,21 +1,3,Miss. Margareth Mannion,female,28,0,0,7.7375 +0,2,Mr. Kurt Arnold Gottfrid Bryhl,male,25,1,0,26 +0,3,Miss. Pieta Sofia Ilmakangas,female,25,1,0,7.925 +1,1,Miss. Elisabeth Walton Allen,female,29,0,0,211.3375 +0,3,Mr. Houssein G N Hassan,male,11,0,0,18.7875 +0,2,Mr. Robert J Knight,male,41,0,0,0 +0,2,Mr. William John Berriman,male,23,0,0,13 +0,2,Mr. Moses Aaron Troupiansky,male,23,0,0,13 +0,3,Mr. Leslie Williams,male,28.5,0,0,16.1 +0,3,Mrs. Edward (Margaret Ann Watson) Ford,female,48,1,3,34.375 +1,1,Mr. Gustave J Lesurer,male,35,0,0,512.3292 +0,3,Mr. Kanio Ivanoff,male,20,0,0,7.8958 +0,3,Mr. Minko Nankoff,male,32,0,0,7.8958 +1,1,Mr. Walter James Hawksford,male,45,0,0,30 +0,1,Mr. Tyrell William Cavendish,male,36,1,0,78.85 +1,1,Miss. Susan Parker Ryerson,female,21,2,2,262.375 +0,3,Mr. Neal McNamee,male,24,1,0,16.1 +1,3,Mr. Juho Stranden,male,31,0,0,7.925 +0,1,Capt. Edward Gifford Crosby,male,70,1,1,71 +0,3,Mr. Rossmore Edward Abbott,male,16,1,1,20.25 +1,2,Miss. Anna Sinkkonen,female,30,0,0,13 +0,1,Mr. Daniel Warner Marvin,male,19,1,0,53.1 +0,3,Mr. Michael Connaghton,male,31,0,0,7.75 +1,2,Miss. Joan Wells,female,4,1,1,23 +1,3,Master. Meier Moor,male,6,0,1,12.475 +0,3,Mr. Johannes Joseph Vande Velde,male,33,0,0,9.5 +0,3,Mr. Lalio Jonkoff,male,23,0,0,7.8958 +1,2,Mrs. Samuel (Jane Laver) Herman,female,48,1,2,65 +1,2,Master. Viljo Hamalainen,male,0.67,1,1,14.5 +0,3,Mr. August Sigfrid Carlsson,male,28,0,0,7.7958 +0,2,Mr. Percy Andrew Bailey,male,18,0,0,11.5 +0,3,Mr. Thomas Leonard Theobald,male,34,0,0,8.05 +1,1,the Countess. of (Lucy Noel Martha Dyer-Edwards) Rothes,female,33,0,0,86.5 +0,3,Mr. John Garfirth,male,23,0,0,14.5 +0,3,Mr. Iisakki Antino Aijo Nirva,male,41,0,0,7.125 +1,3,Mr. Hanna Assi Barah,male,20,0,0,7.2292 +1,1,Mrs. William Ernest (Lucile Polk) Carter,female,36,1,2,120 +0,3,Mr. Hans Linus Eklund,male,16,0,0,7.775 +1,1,Mrs. John C (Anna Andrews) Hogeboom,female,51,1,0,77.9583 +0,1,Dr. Arthur Jackson Brewe,male,46,0,0,39.6 +0,3,Miss. Mary Mangan,female,30.5,0,0,7.75 +0,3,Mr. Daniel J Moran,male,28,1,0,24.15 +0,3,Mr. Daniel Danielsen Gronnestad,male,32,0,0,8.3625 +0,3,Mr. Rene Aime Lievens,male,24,0,0,9.5 +0,3,Mr. Niels Peder Jensen,male,48,0,0,7.8542 +0,2,Mrs. (Mary) Mack,female,57,0,0,10.5 +0,3,Mr. Dibo Elias,male,29,0,0,7.225 +1,2,Mrs. Elizabeth (Eliza Needs) Hocking,female,54,1,3,23 +0,3,Mr. Pehr Fabian Oliver Malkolm Myhrman,male,18,0,0,7.75 +0,3,Mr. Roger Tobin,male,20,0,0,7.75 +1,3,Miss. Virginia Ethel Emanuel,female,5,0,0,12.475 +0,3,Mr. Thomas J Kilgannon,male,22,0,0,7.7375 +1,1,Mrs. Edward Scott (Elisabeth Walton McMillan) Robert,female,43,0,1,211.3375 +1,3,Miss. Banoura Ayoub,female,13,0,0,7.2292 +1,1,Mrs. Albert Adrian (Vera Gillespie) Dick,female,17,1,0,57 +0,1,Mr. Milton Clyde Long,male,29,0,0,30 +0,3,Mr. Andrew G Johnston,male,35,1,2,23.45 +0,3,Mr. William Ali,male,25,0,0,7.05 +0,3,Mr. Abraham (David Lishin) Harmer,male,25,0,0,7.25 +1,3,Miss. Anna Sofia Sjoblom,female,18,0,0,7.4958 +0,3,Master. George Hugh Rice,male,8,4,1,29.125 +1,3,Master. Bertram Vere Dean,male,1,1,2,20.575 +0,1,Mr. Benjamin Guggenheim,male,46,0,0,79.2 +0,3,Mr. Andrew Keane,male,20,0,0,7.75 +0,2,Mr. Alfred Gaskell,male,16,0,0,26 +0,3,Miss. Stella Anna Sage,female,21,8,2,69.55 +0,1,Mr. William Fisher Hoyt,male,43,0,0,30.6958 +0,3,Mr. Ristiu Dantcheff,male,25,0,0,7.8958 +0,2,Mr. Richard Otter,male,39,0,0,13 +1,1,Dr. Alice (Farnham) Leader,female,49,0,0,25.9292 +1,3,Mrs. Mara Osman,female,31,0,0,8.6833 +0,3,Mr. Yousseff Ibrahim Shawah,male,30,0,0,7.2292 +0,3,Mrs. Jean Baptiste (Rosalie Paula Govaert) Van Impe,female,30,1,1,24.15 +0,2,Mr. Martin Ponesell,male,34,0,0,13 +1,2,Mrs. Harvey (Charlotte Annie Tate) Collyer,female,31,1,1,26.25 +1,1,Master. William Thornton II Carter,male,11,1,2,120 +1,3,Master. Assad Alexander Thomas,male,0.42,0,1,8.5167 +1,3,Mr. Oskar Arvid Hedman,male,27,0,0,6.975 +0,3,Mr. Karl Johan Johansson,male,31,0,0,7.775 +0,1,Mr. Thomas Jr Andrews,male,39,0,0,0 +0,3,Miss. Ellen Natalia Pettersson,female,18,0,0,7.775 +0,2,Mr. August Meyer,male,39,0,0,13 +1,1,Mrs. Norman Campbell (Bertha Griggs) Chambers,female,33,1,0,53.1 +0,3,Mr. William Alexander,male,26,0,0,7.8875 +0,3,Mr. James Lester,male,39,0,0,24.15 +0,2,Mr. Richard James Slemen,male,35,0,0,10.5 +0,3,Miss. Ebba Iris Alfrida Andersson,female,6,4,2,31.275 +0,3,Mr. Ernest Portage Tomlin,male,30.5,0,0,8.05 +0,1,Mr. Richard Fry,male,39,0,0,0 +0,3,Miss. Wendla Maria Heininen,female,23,0,0,7.925 +0,2,Mr. Albert Mallet,male,31,1,1,37.0042 +0,3,Mr. John Fredrik Alexander Holm,male,43,0,0,6.45 +0,3,Master. Karl Thorsten Skoog,male,10,3,2,27.9 +1,1,Mrs. Charles Melville (Clara Jennings Gregg) Hays,female,52,1,1,93.5 +1,3,Mr. Nikola Lulic,male,27,0,0,8.6625 +0,1,Jonkheer. John George Reuchlin,male,38,0,0,0 +1,3,Mrs. (Beila) Moor,female,27,0,1,12.475 +0,3,Master. Urho Abraham Panula,male,2,4,1,39.6875 +0,3,Mr. John Flynn,male,36,0,0,6.95 +0,3,Mr. Len Lam,male,23,0,0,56.4958 +1,2,Master. Andre Mallet,male,1,0,2,37.0042 +1,3,Mr. Thomas Joseph McCormack,male,19,0,0,7.75 +1,1,Mrs. George Nelson (Martha Evelyn) Stone,female,62,0,0,80 +1,3,Mrs. Antoni (Selini Alexander) Yasbeck,female,15,1,0,14.4542 +1,2,Master. George Sibley Richards,male,0.83,1,1,18.75 +0,3,Mr. Amin Saad,male,30,0,0,7.2292 +0,3,Mr. Albert Augustsson,male,23,0,0,7.8542 +0,3,Mr. Owen George Allum,male,18,0,0,8.3 +1,1,Miss. Sara Rebecca Compton,female,39,1,1,83.1583 +0,3,Mr. Jakob Pasic,male,21,0,0,8.6625 +0,3,Mr. Maurice Sirota,male,20,0,0,8.05 +1,3,Mr. Chang Chip,male,32,0,0,56.4958 +1,1,Mr. Pierre Marechal,male,29,0,0,29.7 +0,3,Mr. Ilmari Rudolf Alhomaki,male,20,0,0,7.925 +0,2,Mr. Thomas Charles Mudd,male,16,0,0,10.5 +1,1,Miss. Augusta Serepeca,female,30,0,0,31 +0,3,Mr. Peter L Lemberopolous,male,34.5,0,0,6.4375 +0,3,Mr. Jeso Culumovic,male,17,0,0,8.6625 +0,3,Mr. Anthony Abbing,male,42,0,0,7.55 +0,3,Mr. Douglas Bullen Sage,male,18,8,2,69.55 +0,3,Mr. Marin Markoff,male,35,0,0,7.8958 +0,2,Rev. John Harper,male,28,0,1,33 +1,1,Mrs. Samuel L (Edwiga Grabowska) Goldenberg,female,40,1,0,89.1042 +0,3,Master. Sigvard Harald Elias Andersson,male,4,4,2,31.275 +0,3,Mr. Johan Svensson,male,74,0,0,7.775 +0,3,Miss. Nourelain Boulos,female,9,1,1,15.2458 +1,1,Miss. Mary Conover Lines,female,16,0,1,39.4 +0,2,Mrs. Ernest Courtenay (Lilian Hughes) Carter,female,44,1,0,26 +1,3,Mrs. Sam (Leah Rosen) Aks,female,18,0,1,9.35 +1,1,Mrs. George Dennick (Mary Hitchcock) Wick,female,45,1,1,164.8667 +1,1,Mr. Peter Denis Daly,male,51,0,0,26.55 +1,3,Mrs. Solomon (Latifa Qurban) Baclini,female,24,0,3,19.2583 +0,3,Mr. Raihed Razi,male,30,0,0,7.2292 +0,3,Mr. Claus Peter Hansen,male,41,2,0,14.1083 +0,2,Mr. Frederick Edward Giles,male,21,1,0,11.5 +1,1,Mrs. Frederick Joel (Margaret Welles Barron) Swift,female,48,0,0,25.9292 +0,3,Miss. Dorothy Edith Sage,female,14,8,2,69.55 +0,2,Mr. John William Gill,male,24,0,0,13 +1,2,Mrs. (Karolina) Bystrom,female,42,0,0,13 +1,2,Miss. Asuncion Duran y More,female,27,1,0,13.8583 +0,1,Mr. Washington Augustus II Roebling,male,31,0,0,50.4958 +0,3,Mr. Philemon van Melkebeke,male,23,0,0,9.5 +1,3,Master. Harold Theodor Johnson,male,4,1,1,11.1333 +0,3,Mr. Cerin Balkic,male,26,0,0,7.8958 +1,1,Mrs. Richard Leonard (Sallie Monypeny) Beckwith,female,47,1,1,52.5542 +0,1,Mr. Frans Olof Carlsson,male,33,0,0,5 +0,3,Mr. Victor Vander Cruyssen,male,47,0,0,9 +1,2,Mrs. Samuel (Hannah Wizosky) Abelson,female,28,1,0,24 +1,3,Miss. Adele Kiamie Najib,female,15,0,0,7.225 +0,3,Mr. Alfred Ossian Gustafsson,male,20,0,0,9.8458 +0,3,Mr. Nedelio Petroff,male,19,0,0,7.8958 +0,3,Mr. Kristo Laleff,male,23,0,0,7.8958 +1,1,Mrs. Thomas Jr (Lily Alexenia Wilson) Potter,female,56,0,1,83.1583 +1,2,Mrs. William (Imanita Parrish Hall) Shelley,female,25,0,1,26 +0,3,Mr. Johann Markun,male,33,0,0,7.8958 +0,3,Miss. Gerda Ulrika Dahlberg,female,22,0,0,10.5167 +0,2,Mr. Frederick James Banfield,male,28,0,0,10.5 +0,3,Mr. Henry Jr Sutehall,male,25,0,0,7.05 +0,3,Mrs. William (Margaret Norton) Rice,female,39,0,5,29.125 +0,2,Rev. Juozas Montvila,male,27,0,0,13 +1,1,Miss. Margaret Edith Graham,female,19,0,0,30 +0,3,Miss. Catherine Helen Johnston,female,7,1,2,23.45 +1,1,Mr. Karl Howell Behr,male,26,0,0,30 +0,3,Mr. Patrick Dooley,male,32,0,0,7.75 \ No newline at end of file