Skip to content

Instantly share code, notes, and snippets.

@yfwu
Last active April 26, 2021 16:50
Show Gist options
  • Save yfwu/434f650b3b93f56924c2a44463c14dab to your computer and use it in GitHub Desktop.
Save yfwu/434f650b3b93f56924c2a44463c14dab to your computer and use it in GitHub Desktop.
Concat and merge
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "thirty-freeze",
"metadata": {
"scrolled": true
},
"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>ID</th>\n",
" <th>date</th>\n",
" <th>EVM</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>A</td>\n",
" <td>2021-04-25</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>A</td>\n",
" <td>2021-04-25</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>A</td>\n",
" <td>2021-04-25</td>\n",
" <td>6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>A</td>\n",
" <td>2021-04-26</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>A</td>\n",
" <td>2021-04-26</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>A</td>\n",
" <td>2021-04-26</td>\n",
" <td>6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>B</td>\n",
" <td>2021-04-25</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>B</td>\n",
" <td>2021-04-25</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>B</td>\n",
" <td>2021-04-25</td>\n",
" <td>6</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" ID date EVM\n",
"0 A 2021-04-25 4\n",
"1 A 2021-04-25 5\n",
"2 A 2021-04-25 6\n",
"3 A 2021-04-26 4\n",
"4 A 2021-04-26 5\n",
"5 A 2021-04-26 6\n",
"6 B 2021-04-25 4\n",
"7 B 2021-04-25 5\n",
"8 B 2021-04-25 6"
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import pandas as pd\n",
"df = pd.DataFrame({\"ID\":[\"A\",\"A\",\"A\",\"A\",\"A\",\"A\",\"B\",\"B\",\"B\"],\n",
" \"date\":[\"2021-04-25\",\"2021-04-25\",\"2021-04-25\",\n",
" \"2021-04-26\",\"2021-04-26\",\"2021-04-26\",\n",
" \"2021-04-25\",\"2021-04-25\",\"2021-04-25\"],\n",
" \"EVM\":[4,5,6,4,5,6,4,5,6]})\n",
"df"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "martial-display",
"metadata": {},
"outputs": [],
"source": [
"df[\"EVM name\"] = [\"E\",\"V\",\"M\"]*int(len(df)/3)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "pleased-bristol",
"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 tr th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe thead tr:last-of-type th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr>\n",
" <th></th>\n",
" <th></th>\n",
" <th colspan=\"3\" halign=\"left\">EVM</th>\n",
" </tr>\n",
" <tr>\n",
" <th></th>\n",
" <th>EVM name</th>\n",
" <th>E</th>\n",
" <th>M</th>\n",
" <th>V</th>\n",
" </tr>\n",
" <tr>\n",
" <th>ID</th>\n",
" <th>date</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th rowspan=\"2\" valign=\"top\">A</th>\n",
" <th>2021-04-25</th>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-04-26</th>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>B</th>\n",
" <th>2021-04-25</th>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" EVM \n",
"EVM name E M V\n",
"ID date \n",
"A 2021-04-25 4 6 5\n",
" 2021-04-26 4 6 5\n",
"B 2021-04-25 4 6 5"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.set_index([\"ID\", \"date\", \"EVM name\"]).unstack()"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"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.2"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment