portfolio

portfolio is this site. It holds one object, erdem, and everything you can read here is an attribute of it.

This page is its documentation, and it is a notebook too. Every example below has already been run. Click into a cell, change it, and press Enter to run it again, or use the empty cell at the end.

Quickstart

Import the object and look at it.

In [1]:
In [2]:
Out[2]:
Erdem(name='Yusuf Erdem Altinsoy', location='Istanbul, Turkey', seeking='data science internship')

dir(erdem) lists the sections of the site. Each name in the output is a link that runs it.

In [3]:

Methods and attributes

erdem follows the pandas convention. What builds a report is a method and is called with parentheses. What is data is an attribute and is read without them.

MethodReports
erdem.describe()A short summary and the key facts
erdem.info()The CV: education, skills, languages
AttributeTypeHolds
erdem.projectsDataFrameThe projects, one row each
erdem.experienceExperienceWork experience
erdem.skillsdictLanguages and technologies
erdem.contactdictEmail and profile links
name, location, seeking, emailstrThe basics
education, languagesdictDegree and spoken languages

As in pandas, describe() returns its table and info() prints, so the output of info() has no Out prompt.

In [4]:
<class 'portfolio.Erdem'> Education B.Sc. Computer Engineering, Yeditepe UniversityIstanbul, TurkeySept. 2023 – expected June 2028English-medium, including a prep year Skills Languages: Python, SQL (PostgreSQL), C++, CTechnologies: Pandas, NumPy, scikit-learn, XGBoost, LightGBM, CatBoost, BeautifulSoup, nodriver, Jupyter, Git Spoken languages Turkish: NativeEnglish: B2. University preparatory program; degree taught fully in English; three months living abroad in Germany.

An attribute is a Python value: index it, take its length, call string methods on it.

In [5]:
Out[5]:
{'Languages': ['Python', 'SQL (PostgreSQL)', 'C++', 'C'], 'Technologies': ['Pandas', 'NumPy', 'scikit-learn', 'XGBoost', 'LightGBM', 'CatBoost', 'BeautifulSoup', 'nodriver', 'Jupyter', 'Git']}
In [6]:
Out[6]:
'Yusuf Erdem Altinsoy'
In [7]:
In [8]:
Out[8]:
10

Projects

erdem.projects is a small pandas-style DataFrame: one row per project, indexed by a short name, with the columns title, status, stack and summary.

In [9]:
Out[9]:
(3, 4)
In [10]:
Out[10]:
status Built 2 In progress 1 Name: count, dtype: int64

Select rows the pandas way, with a boolean mask.

In [11]:
Out[11]:
titlestatusstacksummary
fbref-scraperfbref_scraperBuiltPython 3.11, nodriver, BeautifulSoup, pydantic, SQLAlchemy, PostgreSQLA modular fbref.com football data scraper: 4 page types parsed by 19 scraper modules into 26 typed models with 118 validated fields.
kaggle-competitionsKaggle competitionsBuiltPandas, scikit-learn, XGBoost, LightGBM, CatBoostSpaceship Titanic (solo): rank 95 of 1,583 (top 6%), 0.810 public accuracy against a roughly 50% majority-class baseline.

.loc with a row and a column gives one value. With the row alone it opens that project's full write-up; so does clicking a row's name in the table above.

In [12]:
Out[12]:
'In progress'
OnSupported
DataFramehead(n), tail(n), shape, columns, index, info(), len(df), df["column"], df.column, df[mask], loc[row], loc[row, column], iloc[n]
Seriesvalue_counts(), unique(), tolist(), == value, != value

Plain Python

The kernel also evaluates arithmetic, strings, lists and tuples, and the built-ins len, type, print, vars, dir and help.

In [13]:
1024 YUSUF ERDEM ALTINSOY

Errors

A mistake raises the error Python would raise, with Python's suggestion when it has one.

In [14]:
--------------------------------------------------------------------------- AttributeError Traceback (most recent call last) Cell In[14], line 1 ----> 1 erdem.nam AttributeError: 'Erdem' object has no attribute 'nam'. Did you mean: 'name'?

The same goes for mixing up the two kinds. Data is not callable, and a method named without its parentheses is shown, not run.

In [15]:
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) Cell In[15], line 1 ----> 1 erdem.projects() TypeError: 'DataFrame' object is not callable
In [16]:
Out[16]:
<bound method Erdem.describe>

Using the notebook

ControlWhat it does
Enter, or Shift + EnterRuns the cell and moves to the next one
Alt + EnterStarts a new line in the cell
TabCompletes a partly typed command
The four toolbar buttonsInsert a cell below, run the selected cell, reload the page, run everything from the top
Code / MarkdownChanges the selected cell's type; a Markdown cell renders what you write
The bin on the selected cellDeletes it. The cells a page opens with stay.
Double-clickOpens a Markdown cell you wrote for editing

Limits

This is not a full Python. A cell holds one expression: there are no variables, assignments, loops or function definitions, and portfolio is the only module that can be imported. Anything else raises NotImplementedError.

In [ ]: