Skip to content

Instantly share code, notes, and snippets.

@joshlk
Last active January 3, 2023 15:13
Show Gist options
  • Save joshlk/6ac85803c6ad7e41238051cff4dd80b0 to your computer and use it in GitHub Desktop.
Save joshlk/6ac85803c6ad7e41238051cff4dd80b0 to your computer and use it in GitHub Desktop.
Stackoverflow developer survey 2022 analysis of Docker usage between data scientists and devops engineers
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "0e5bf970",
"metadata": {},
"outputs": [],
"source": [
"from itertools import product"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "994b59de",
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "51172922",
"metadata": {},
"outputs": [],
"source": [
"pd.options.display.max_columns = 10000"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "255901bd",
"metadata": {},
"outputs": [],
"source": [
"data = pd.read_csv('stack-overflow-developer-survey-2022/survey_results_public.csv')"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "ff40b4cd",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>ResponseId</th>\n",
" <th>MainBranch</th>\n",
" <th>Employment</th>\n",
" <th>RemoteWork</th>\n",
" <th>CodingActivities</th>\n",
" <th>EdLevel</th>\n",
" <th>LearnCode</th>\n",
" <th>LearnCodeOnline</th>\n",
" <th>LearnCodeCoursesCert</th>\n",
" <th>YearsCode</th>\n",
" <th>YearsCodePro</th>\n",
" <th>DevType</th>\n",
" <th>OrgSize</th>\n",
" <th>PurchaseInfluence</th>\n",
" <th>BuyNewTool</th>\n",
" <th>Country</th>\n",
" <th>Currency</th>\n",
" <th>CompTotal</th>\n",
" <th>CompFreq</th>\n",
" <th>LanguageHaveWorkedWith</th>\n",
" <th>LanguageWantToWorkWith</th>\n",
" <th>DatabaseHaveWorkedWith</th>\n",
" <th>DatabaseWantToWorkWith</th>\n",
" <th>PlatformHaveWorkedWith</th>\n",
" <th>PlatformWantToWorkWith</th>\n",
" <th>WebframeHaveWorkedWith</th>\n",
" <th>WebframeWantToWorkWith</th>\n",
" <th>MiscTechHaveWorkedWith</th>\n",
" <th>MiscTechWantToWorkWith</th>\n",
" <th>ToolsTechHaveWorkedWith</th>\n",
" <th>ToolsTechWantToWorkWith</th>\n",
" <th>NEWCollabToolsHaveWorkedWith</th>\n",
" <th>NEWCollabToolsWantToWorkWith</th>\n",
" <th>OpSysProfessional use</th>\n",
" <th>OpSysPersonal use</th>\n",
" <th>VersionControlSystem</th>\n",
" <th>VCInteraction</th>\n",
" <th>VCHostingPersonal use</th>\n",
" <th>VCHostingProfessional use</th>\n",
" <th>OfficeStackAsyncHaveWorkedWith</th>\n",
" <th>OfficeStackAsyncWantToWorkWith</th>\n",
" <th>OfficeStackSyncHaveWorkedWith</th>\n",
" <th>OfficeStackSyncWantToWorkWith</th>\n",
" <th>Blockchain</th>\n",
" <th>NEWSOSites</th>\n",
" <th>SOVisitFreq</th>\n",
" <th>SOAccount</th>\n",
" <th>SOPartFreq</th>\n",
" <th>SOComm</th>\n",
" <th>Age</th>\n",
" <th>Gender</th>\n",
" <th>Trans</th>\n",
" <th>Sexuality</th>\n",
" <th>Ethnicity</th>\n",
" <th>Accessibility</th>\n",
" <th>MentalHealth</th>\n",
" <th>TBranch</th>\n",
" <th>ICorPM</th>\n",
" <th>WorkExp</th>\n",
" <th>Knowledge_1</th>\n",
" <th>Knowledge_2</th>\n",
" <th>Knowledge_3</th>\n",
" <th>Knowledge_4</th>\n",
" <th>Knowledge_5</th>\n",
" <th>Knowledge_6</th>\n",
" <th>Knowledge_7</th>\n",
" <th>Frequency_1</th>\n",
" <th>Frequency_2</th>\n",
" <th>Frequency_3</th>\n",
" <th>TimeSearching</th>\n",
" <th>TimeAnswering</th>\n",
" <th>Onboarding</th>\n",
" <th>ProfessionalTech</th>\n",
" <th>TrueFalse_1</th>\n",
" <th>TrueFalse_2</th>\n",
" <th>TrueFalse_3</th>\n",
" <th>SurveyLength</th>\n",
" <th>SurveyEase</th>\n",
" <th>ConvertedCompYearly</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1</td>\n",
" <td>None of these</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2</td>\n",
" <td>I am a developer by profession</td>\n",
" <td>Employed, full-time</td>\n",
" <td>Fully remote</td>\n",
" <td>Hobby;Contribute to open-source projects</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>Canada</td>\n",
" <td>CAD\\tCanadian dollar</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>JavaScript;TypeScript</td>\n",
" <td>Rust;TypeScript</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>macOS</td>\n",
" <td>Windows Subsystem for Linux (WSL)</td>\n",
" <td>Git</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>Very unfavorable</td>\n",
" <td>Collectives on Stack Overflow;Stack Overflow f...</td>\n",
" <td>Daily or almost daily</td>\n",
" <td>Yes</td>\n",
" <td>Daily or almost daily</td>\n",
" <td>Not sure</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>No</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>Too long</td>\n",
" <td>Difficult</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>3</td>\n",
" <td>I am not primarily a developer, but I write co...</td>\n",
" <td>Employed, full-time</td>\n",
" <td>Hybrid (some remote, some in-person)</td>\n",
" <td>Hobby</td>\n",
" <td>Master’s degree (M.A., M.S., M.Eng., MBA, etc.)</td>\n",
" <td>Books / Physical media;Friend or family member...</td>\n",
" <td>Technical documentation;Blogs;Programming Game...</td>\n",
" <td>NaN</td>\n",
" <td>14</td>\n",
" <td>5</td>\n",
" <td>Data scientist or machine learning specialist;...</td>\n",
" <td>20 to 99 employees</td>\n",
" <td>I have some influence</td>\n",
" <td>NaN</td>\n",
" <td>United Kingdom of Great Britain and Northern I...</td>\n",
" <td>GBP\\tPound sterling</td>\n",
" <td>32000.0</td>\n",
" <td>Yearly</td>\n",
" <td>C#;C++;HTML/CSS;JavaScript;Python</td>\n",
" <td>C#;C++;HTML/CSS;JavaScript;TypeScript</td>\n",
" <td>Microsoft SQL Server</td>\n",
" <td>Microsoft SQL Server</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>Angular.js</td>\n",
" <td>Angular;Angular.js</td>\n",
" <td>Pandas</td>\n",
" <td>.NET</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>Notepad++;Visual Studio</td>\n",
" <td>Notepad++;Visual Studio</td>\n",
" <td>Windows</td>\n",
" <td>Windows</td>\n",
" <td>Git</td>\n",
" <td>Code editor</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>Microsoft Teams</td>\n",
" <td>Microsoft Teams</td>\n",
" <td>Very unfavorable</td>\n",
" <td>Collectives on Stack Overflow;Stack Overflow;S...</td>\n",
" <td>Multiple times per day</td>\n",
" <td>Yes</td>\n",
" <td>Multiple times per day</td>\n",
" <td>Neutral</td>\n",
" <td>25-34 years old</td>\n",
" <td>Man</td>\n",
" <td>No</td>\n",
" <td>Bisexual</td>\n",
" <td>White</td>\n",
" <td>None of the above</td>\n",
" <td>I have a mood or emotional disorder (e.g., dep...</td>\n",
" <td>No</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>Appropriate in length</td>\n",
" <td>Neither easy nor difficult</td>\n",
" <td>40205.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>4</td>\n",
" <td>I am a developer by profession</td>\n",
" <td>Employed, full-time</td>\n",
" <td>Fully remote</td>\n",
" <td>I don’t code outside of work</td>\n",
" <td>Bachelor’s degree (B.A., B.S., B.Eng., etc.)</td>\n",
" <td>Books / Physical media;School (i.e., Universit...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>20</td>\n",
" <td>17</td>\n",
" <td>Developer, full-stack</td>\n",
" <td>100 to 499 employees</td>\n",
" <td>I have some influence</td>\n",
" <td>Other (please specify):</td>\n",
" <td>Israel</td>\n",
" <td>ILS\\tIsraeli new shekel</td>\n",
" <td>60000.0</td>\n",
" <td>Monthly</td>\n",
" <td>C#;JavaScript;SQL;TypeScript</td>\n",
" <td>C#;SQL;TypeScript</td>\n",
" <td>Microsoft SQL Server</td>\n",
" <td>Microsoft SQL Server</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>ASP.NET;ASP.NET Core</td>\n",
" <td>ASP.NET;ASP.NET Core</td>\n",
" <td>.NET</td>\n",
" <td>.NET</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>Notepad++;Visual Studio;Visual Studio Code</td>\n",
" <td>Notepad++;Visual Studio;Visual Studio Code</td>\n",
" <td>Windows</td>\n",
" <td>Windows</td>\n",
" <td>Git</td>\n",
" <td>Code editor;Command-line;Version control hosti...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>Jira Work Management;Trello</td>\n",
" <td>Jira Work Management;Trello</td>\n",
" <td>Slack;Zoom</td>\n",
" <td>Slack;Zoom</td>\n",
" <td>Very unfavorable</td>\n",
" <td>Collectives on Stack Overflow;Stack Overflow f...</td>\n",
" <td>Daily or almost daily</td>\n",
" <td>Yes</td>\n",
" <td>A few times per week</td>\n",
" <td>Yes, definitely</td>\n",
" <td>35-44 years old</td>\n",
" <td>Man</td>\n",
" <td>No</td>\n",
" <td>Straight / Heterosexual</td>\n",
" <td>White</td>\n",
" <td>None of the above</td>\n",
" <td>None of the above</td>\n",
" <td>No</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>Appropriate in length</td>\n",
" <td>Easy</td>\n",
" <td>215232.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>5</td>\n",
" <td>I am a developer by profession</td>\n",
" <td>Employed, full-time</td>\n",
" <td>Hybrid (some remote, some in-person)</td>\n",
" <td>Hobby</td>\n",
" <td>Bachelor’s degree (B.A., B.S., B.Eng., etc.)</td>\n",
" <td>Other online resources (e.g., videos, blogs, f...</td>\n",
" <td>Technical documentation;Blogs;Stack Overflow;O...</td>\n",
" <td>NaN</td>\n",
" <td>8</td>\n",
" <td>3</td>\n",
" <td>Developer, front-end;Developer, full-stack;Dev...</td>\n",
" <td>20 to 99 employees</td>\n",
" <td>I have some influence</td>\n",
" <td>Start a free trial;Visit developer communities...</td>\n",
" <td>United States of America</td>\n",
" <td>USD\\tUnited States dollar</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>C#;HTML/CSS;JavaScript;SQL;Swift;TypeScript</td>\n",
" <td>C#;Elixir;F#;Go;JavaScript;Rust;TypeScript</td>\n",
" <td>Cloud Firestore;Elasticsearch;Microsoft SQL Se...</td>\n",
" <td>Cloud Firestore;Elasticsearch;Firebase Realtim...</td>\n",
" <td>Firebase;Microsoft Azure</td>\n",
" <td>Firebase;Microsoft Azure</td>\n",
" <td>Angular;ASP.NET;ASP.NET Core ;jQuery;Node.js</td>\n",
" <td>Angular;ASP.NET Core ;Blazor;Node.js</td>\n",
" <td>.NET</td>\n",
" <td>.NET;Apache Kafka</td>\n",
" <td>npm</td>\n",
" <td>Docker;Kubernetes</td>\n",
" <td>Notepad++;Visual Studio;Visual Studio Code;Xcode</td>\n",
" <td>Rider;Visual Studio;Visual Studio Code</td>\n",
" <td>Windows</td>\n",
" <td>macOS;Windows</td>\n",
" <td>Git;Other (please specify):</td>\n",
" <td>Code editor</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>Microsoft Teams;Zoom</td>\n",
" <td>NaN</td>\n",
" <td>Unfavorable</td>\n",
" <td>Collectives on Stack Overflow;Stack Overflow f...</td>\n",
" <td>Multiple times per day</td>\n",
" <td>Yes</td>\n",
" <td>Daily or almost daily</td>\n",
" <td>Yes, definitely</td>\n",
" <td>25-34 years old</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>No</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>Too long</td>\n",
" <td>Easy</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" ResponseId MainBranch \\\n",
"0 1 None of these \n",
"1 2 I am a developer by profession \n",
"2 3 I am not primarily a developer, but I write co... \n",
"3 4 I am a developer by profession \n",
"4 5 I am a developer by profession \n",
"\n",
" Employment RemoteWork \\\n",
"0 NaN NaN \n",
"1 Employed, full-time Fully remote \n",
"2 Employed, full-time Hybrid (some remote, some in-person) \n",
"3 Employed, full-time Fully remote \n",
"4 Employed, full-time Hybrid (some remote, some in-person) \n",
"\n",
" CodingActivities \\\n",
"0 NaN \n",
"1 Hobby;Contribute to open-source projects \n",
"2 Hobby \n",
"3 I don’t code outside of work \n",
"4 Hobby \n",
"\n",
" EdLevel \\\n",
"0 NaN \n",
"1 NaN \n",
"2 Master’s degree (M.A., M.S., M.Eng., MBA, etc.) \n",
"3 Bachelor’s degree (B.A., B.S., B.Eng., etc.) \n",
"4 Bachelor’s degree (B.A., B.S., B.Eng., etc.) \n",
"\n",
" LearnCode \\\n",
"0 NaN \n",
"1 NaN \n",
"2 Books / Physical media;Friend or family member... \n",
"3 Books / Physical media;School (i.e., Universit... \n",
"4 Other online resources (e.g., videos, blogs, f... \n",
"\n",
" LearnCodeOnline LearnCodeCoursesCert \\\n",
"0 NaN NaN \n",
"1 NaN NaN \n",
"2 Technical documentation;Blogs;Programming Game... NaN \n",
"3 NaN NaN \n",
"4 Technical documentation;Blogs;Stack Overflow;O... NaN \n",
"\n",
" YearsCode YearsCodePro DevType \\\n",
"0 NaN NaN NaN \n",
"1 NaN NaN NaN \n",
"2 14 5 Data scientist or machine learning specialist;... \n",
"3 20 17 Developer, full-stack \n",
"4 8 3 Developer, front-end;Developer, full-stack;Dev... \n",
"\n",
" OrgSize PurchaseInfluence \\\n",
"0 NaN NaN \n",
"1 NaN NaN \n",
"2 20 to 99 employees I have some influence \n",
"3 100 to 499 employees I have some influence \n",
"4 20 to 99 employees I have some influence \n",
"\n",
" BuyNewTool \\\n",
"0 NaN \n",
"1 NaN \n",
"2 NaN \n",
"3 Other (please specify): \n",
"4 Start a free trial;Visit developer communities... \n",
"\n",
" Country \\\n",
"0 NaN \n",
"1 Canada \n",
"2 United Kingdom of Great Britain and Northern I... \n",
"3 Israel \n",
"4 United States of America \n",
"\n",
" Currency CompTotal CompFreq \\\n",
"0 NaN NaN NaN \n",
"1 CAD\\tCanadian dollar NaN NaN \n",
"2 GBP\\tPound sterling 32000.0 Yearly \n",
"3 ILS\\tIsraeli new shekel 60000.0 Monthly \n",
"4 USD\\tUnited States dollar NaN NaN \n",
"\n",
" LanguageHaveWorkedWith \\\n",
"0 NaN \n",
"1 JavaScript;TypeScript \n",
"2 C#;C++;HTML/CSS;JavaScript;Python \n",
"3 C#;JavaScript;SQL;TypeScript \n",
"4 C#;HTML/CSS;JavaScript;SQL;Swift;TypeScript \n",
"\n",
" LanguageWantToWorkWith \\\n",
"0 NaN \n",
"1 Rust;TypeScript \n",
"2 C#;C++;HTML/CSS;JavaScript;TypeScript \n",
"3 C#;SQL;TypeScript \n",
"4 C#;Elixir;F#;Go;JavaScript;Rust;TypeScript \n",
"\n",
" DatabaseHaveWorkedWith \\\n",
"0 NaN \n",
"1 NaN \n",
"2 Microsoft SQL Server \n",
"3 Microsoft SQL Server \n",
"4 Cloud Firestore;Elasticsearch;Microsoft SQL Se... \n",
"\n",
" DatabaseWantToWorkWith \\\n",
"0 NaN \n",
"1 NaN \n",
"2 Microsoft SQL Server \n",
"3 Microsoft SQL Server \n",
"4 Cloud Firestore;Elasticsearch;Firebase Realtim... \n",
"\n",
" PlatformHaveWorkedWith PlatformWantToWorkWith \\\n",
"0 NaN NaN \n",
"1 NaN NaN \n",
"2 NaN NaN \n",
"3 NaN NaN \n",
"4 Firebase;Microsoft Azure Firebase;Microsoft Azure \n",
"\n",
" WebframeHaveWorkedWith \\\n",
"0 NaN \n",
"1 NaN \n",
"2 Angular.js \n",
"3 ASP.NET;ASP.NET Core \n",
"4 Angular;ASP.NET;ASP.NET Core ;jQuery;Node.js \n",
"\n",
" WebframeWantToWorkWith MiscTechHaveWorkedWith \\\n",
"0 NaN NaN \n",
"1 NaN NaN \n",
"2 Angular;Angular.js Pandas \n",
"3 ASP.NET;ASP.NET Core .NET \n",
"4 Angular;ASP.NET Core ;Blazor;Node.js .NET \n",
"\n",
" MiscTechWantToWorkWith ToolsTechHaveWorkedWith ToolsTechWantToWorkWith \\\n",
"0 NaN NaN NaN \n",
"1 NaN NaN NaN \n",
"2 .NET NaN NaN \n",
"3 .NET NaN NaN \n",
"4 .NET;Apache Kafka npm Docker;Kubernetes \n",
"\n",
" NEWCollabToolsHaveWorkedWith \\\n",
"0 NaN \n",
"1 NaN \n",
"2 Notepad++;Visual Studio \n",
"3 Notepad++;Visual Studio;Visual Studio Code \n",
"4 Notepad++;Visual Studio;Visual Studio Code;Xcode \n",
"\n",
" NEWCollabToolsWantToWorkWith OpSysProfessional use \\\n",
"0 NaN NaN \n",
"1 NaN macOS \n",
"2 Notepad++;Visual Studio Windows \n",
"3 Notepad++;Visual Studio;Visual Studio Code Windows \n",
"4 Rider;Visual Studio;Visual Studio Code Windows \n",
"\n",
" OpSysPersonal use VersionControlSystem \\\n",
"0 NaN NaN \n",
"1 Windows Subsystem for Linux (WSL) Git \n",
"2 Windows Git \n",
"3 Windows Git \n",
"4 macOS;Windows Git;Other (please specify): \n",
"\n",
" VCInteraction VCHostingPersonal use \\\n",
"0 NaN NaN \n",
"1 NaN NaN \n",
"2 Code editor NaN \n",
"3 Code editor;Command-line;Version control hosti... NaN \n",
"4 Code editor NaN \n",
"\n",
" VCHostingProfessional use OfficeStackAsyncHaveWorkedWith \\\n",
"0 NaN NaN \n",
"1 NaN NaN \n",
"2 NaN NaN \n",
"3 NaN Jira Work Management;Trello \n",
"4 NaN NaN \n",
"\n",
" OfficeStackAsyncWantToWorkWith OfficeStackSyncHaveWorkedWith \\\n",
"0 NaN NaN \n",
"1 NaN NaN \n",
"2 NaN Microsoft Teams \n",
"3 Jira Work Management;Trello Slack;Zoom \n",
"4 NaN Microsoft Teams;Zoom \n",
"\n",
" OfficeStackSyncWantToWorkWith Blockchain \\\n",
"0 NaN NaN \n",
"1 NaN Very unfavorable \n",
"2 Microsoft Teams Very unfavorable \n",
"3 Slack;Zoom Very unfavorable \n",
"4 NaN Unfavorable \n",
"\n",
" NEWSOSites SOVisitFreq \\\n",
"0 NaN NaN \n",
"1 Collectives on Stack Overflow;Stack Overflow f... Daily or almost daily \n",
"2 Collectives on Stack Overflow;Stack Overflow;S... Multiple times per day \n",
"3 Collectives on Stack Overflow;Stack Overflow f... Daily or almost daily \n",
"4 Collectives on Stack Overflow;Stack Overflow f... Multiple times per day \n",
"\n",
" SOAccount SOPartFreq SOComm Age Gender \\\n",
"0 NaN NaN NaN NaN NaN \n",
"1 Yes Daily or almost daily Not sure NaN NaN \n",
"2 Yes Multiple times per day Neutral 25-34 years old Man \n",
"3 Yes A few times per week Yes, definitely 35-44 years old Man \n",
"4 Yes Daily or almost daily Yes, definitely 25-34 years old NaN \n",
"\n",
" Trans Sexuality Ethnicity Accessibility \\\n",
"0 NaN NaN NaN NaN \n",
"1 NaN NaN NaN NaN \n",
"2 No Bisexual White None of the above \n",
"3 No Straight / Heterosexual White None of the above \n",
"4 NaN NaN NaN NaN \n",
"\n",
" MentalHealth TBranch ICorPM WorkExp \\\n",
"0 NaN NaN NaN NaN \n",
"1 NaN No NaN NaN \n",
"2 I have a mood or emotional disorder (e.g., dep... No NaN NaN \n",
"3 None of the above No NaN NaN \n",
"4 NaN No NaN NaN \n",
"\n",
" Knowledge_1 Knowledge_2 Knowledge_3 Knowledge_4 Knowledge_5 Knowledge_6 \\\n",
"0 NaN NaN NaN NaN NaN NaN \n",
"1 NaN NaN NaN NaN NaN NaN \n",
"2 NaN NaN NaN NaN NaN NaN \n",
"3 NaN NaN NaN NaN NaN NaN \n",
"4 NaN NaN NaN NaN NaN NaN \n",
"\n",
" Knowledge_7 Frequency_1 Frequency_2 Frequency_3 TimeSearching TimeAnswering \\\n",
"0 NaN NaN NaN NaN NaN NaN \n",
"1 NaN NaN NaN NaN NaN NaN \n",
"2 NaN NaN NaN NaN NaN NaN \n",
"3 NaN NaN NaN NaN NaN NaN \n",
"4 NaN NaN NaN NaN NaN NaN \n",
"\n",
" Onboarding ProfessionalTech TrueFalse_1 TrueFalse_2 TrueFalse_3 \\\n",
"0 NaN NaN NaN NaN NaN \n",
"1 NaN NaN NaN NaN NaN \n",
"2 NaN NaN NaN NaN NaN \n",
"3 NaN NaN NaN NaN NaN \n",
"4 NaN NaN NaN NaN NaN \n",
"\n",
" SurveyLength SurveyEase ConvertedCompYearly \n",
"0 NaN NaN NaN \n",
"1 Too long Difficult NaN \n",
"2 Appropriate in length Neither easy nor difficult 40205.0 \n",
"3 Appropriate in length Easy 215232.0 \n",
"4 Too long Easy NaN "
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data.head()"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "804b9e65",
"metadata": {},
"outputs": [],
"source": [
"data_not_na = data[data['DevType'].notna() & data['ToolsTechWantToWorkWith'].notna()]"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "3c2439da",
"metadata": {},
"outputs": [],
"source": [
"data_sci = data_not_na['DevType'].str.contains('Data scientist or machine learning specialist')\n",
"not_data_sci = ~data_not_na['DevType'].str.contains('Data scientist or machine learning specialist')\n",
"dev_ops = data_not_na['DevType'].str.contains('DevOps specialist')\n",
"not_dev_ops = ~data_not_na['DevType'].str.contains('DevOps specialist')\n",
"cats = [('data_sci', data_sci), ('not_data_sci', not_data_sci), ('dev_ops', dev_ops), ('not_dev_ops', not_dev_ops)]"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "c189e299",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"data_sci: 2095\n",
"not_data_sci: 39130\n",
"dev_ops: 5205\n",
"not_dev_ops: 36020\n"
]
}
],
"source": [
"for cat_name, cat in cats:\n",
" print(f\"{cat_name}: {cat.sum()}\")"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "d0b30972",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"data_sci, ToolsTechHaveWorkedWith: 81%\n",
"data_sci, ToolsTechWantToWorkWith: 80%\n",
"not_data_sci, ToolsTechHaveWorkedWith: 69%\n",
"not_data_sci, ToolsTechWantToWorkWith: 72%\n",
"dev_ops, ToolsTechHaveWorkedWith: 87%\n",
"dev_ops, ToolsTechWantToWorkWith: 83%\n",
"not_dev_ops, ToolsTechHaveWorkedWith: 67%\n",
"not_dev_ops, ToolsTechWantToWorkWith: 71%\n"
]
}
],
"source": [
"for (cat_name, cat), col in product(cats, ['ToolsTechHaveWorkedWith', 'ToolsTechWantToWorkWith']):\n",
" c = data_not_na[cat][col].str.contains('Docker', case=False).mean()\n",
" c = int(round(c*100, 0))\n",
" print(f\"{cat_name}, {col}: {c}%\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "df33abed",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.0"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment