{
"cells": [
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" additions | \n",
" deletions | \n",
" filename | \n",
" author | \n",
"
\n",
" \n",
" \n",
" \n",
" 1 | \n",
" 2 | \n",
" 3 | \n",
" pom.xml | \n",
" Dave Syer | \n",
"
\n",
" \n",
" 3 | \n",
" 1 | \n",
" 1 | \n",
" readme.md | \n",
" Antoine Rey | \n",
"
\n",
" \n",
" 5 | \n",
" 1 | \n",
" 0 | \n",
" pom.xml | \n",
" Antoine Rey | \n",
"
\n",
" \n",
" 7 | \n",
" 1 | \n",
" 1 | \n",
" pom.xml | \n",
" Stephane Nicoll | \n",
"
\n",
" \n",
" 8 | \n",
" 11 | \n",
" 9 | \n",
" src/main/java/org/springframework/samples/petc... | \n",
" Stephane Nicoll | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" additions deletions filename \\\n",
"1 2 3 pom.xml \n",
"3 1 1 readme.md \n",
"5 1 0 pom.xml \n",
"7 1 1 pom.xml \n",
"8 11 9 src/main/java/org/springframework/samples/petc... \n",
"\n",
" author \n",
"1 Dave Syer \n",
"3 Antoine Rey \n",
"5 Antoine Rey \n",
"7 Stephane Nicoll \n",
"8 Stephane Nicoll "
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import pandas as pd\n",
"\n",
"git_log = pd.read_csv(\n",
" \"../../../spring-petclinic/git_knowledge.log\",\n",
" names=['additions', 'deletions', 'filename', 'author'],\n",
" sep='\\t')\n",
"git_log['author'] = git_log['author'].ffill()\n",
"git_log = git_log.dropna()\n",
"git_log.head()"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" additions | \n",
" deletions | \n",
" filename | \n",
" author | \n",
"
\n",
" \n",
" \n",
" \n",
" 4185 | \n",
" 0 | \n",
" 32 | \n",
" .classpath | \n",
" Michael Isvy | \n",
"
\n",
" \n",
" 4501 | \n",
" 0 | \n",
" 5 | \n",
" .classpath | \n",
" Michael Isvy | \n",
"
\n",
" \n",
" 4669 | \n",
" 28 | \n",
" 6 | \n",
" .classpath | \n",
" Michael Isvy | \n",
"
\n",
" \n",
" 4776 | \n",
" 2 | \n",
" 2 | \n",
" .classpath | \n",
" Rossen Stoyanchev | \n",
"
\n",
" \n",
" 4859 | \n",
" 8 | \n",
" 36 | \n",
" .classpath | \n",
" Keith Donald | \n",
"
\n",
" \n",
" 5094 | \n",
" 43 | \n",
" 0 | \n",
" .classpath | \n",
" Costin Leau | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" additions deletions filename author\n",
"4185 0 32 .classpath Michael Isvy\n",
"4501 0 5 .classpath Michael Isvy\n",
"4669 28 6 .classpath Michael Isvy\n",
"4776 2 2 .classpath Rossen Stoyanchev\n",
"4859 8 36 .classpath Keith Donald\n",
"5094 43 0 .classpath Costin Leau"
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"git_log[git_log['filename'] == \".classpath\"]"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" additions | \n",
" deletions | \n",
" filename | \n",
" author | \n",
"
\n",
" \n",
" \n",
" \n",
" 362 | \n",
" 0 | \n",
" 3 | \n",
" .bowerrc | \n",
" Dapeng | \n",
"
\n",
" \n",
" 1888 | \n",
" 1 | \n",
" 1 | \n",
" .bowerrc | \n",
" Antoine Rey | \n",
"
\n",
" \n",
" 2971 | \n",
" 3 | \n",
" 0 | \n",
" .bowerrc | \n",
" Faycal Ihabritane | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" additions deletions filename author\n",
"362 0 3 .bowerrc Dapeng\n",
"1888 1 1 .bowerrc Antoine Rey\n",
"2971 3 0 .bowerrc Faycal Ihabritane"
]
},
"execution_count": 40,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"git_log[git_log['filename'] == \".bowerrc\"]\n"
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"pd.DataFrame.var?"
]
},
{
"cell_type": "code",
"execution_count": 90,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"filename\n",
".bowerrc 3\n",
".classpath 6\n",
".editorconfig 2\n",
".gitignore 8\n",
".mvn/wrapper/maven-wrapper.jar 1\n",
".mvn/wrapper/maven-wrapper.properties 1\n",
".project 5\n",
".settings/.jsdtscope 3\n",
".settings/com.springsource.server.ide.jdt.core.xml 2\n",
".settings/org.eclipse.jdt.core.prefs 3\n",
".settings/org.eclipse.jst.common.project.facet.core.prefs 2\n",
".settings/org.eclipse.m2e.core.prefs 2\n",
".settings/org.eclipse.m2e.wtp.prefs 2\n",
".settings/org.eclipse.wst.common.component 5\n",
".settings/org.eclipse.wst.common.project.facet.core.xml 3\n",
".settings/org.eclipse.wst.jsdt.ui.superType.container 2\n",
".settings/org.eclipse.wst.jsdt.ui.superType.name 2\n",
".settings/org.eclipse.wst.validation.prefs 2\n",
".settings/org.maven.ide.eclipse.prefs 2\n",
".settings/org.springframework.ide.eclipse.beans.core.prefs 2\n",
".settings/org.springframework.ide.eclipse.core.prefs 3\n",
".springBeans 14\n",
".travis.yml 2\n",
"README.md 2\n",
"authors.txt 2\n",
"bower.json 3\n",
"db/build.xml 2\n",
"db/dropTables.txt 2\n",
"db/emptyDB.txt 2\n",
"db/mysql/createDB.txt 2\n",
" ..\n",
"src/test/java/org/springframework/samples/petclinic/vet/VetControllerTests.java 1\n",
"src/test/java/org/springframework/samples/petclinic/vet/VetTests.java 1\n",
"src/test/java/org/springframework/samples/petclinic/web/CrashControllerTests.java 6\n",
"src/test/java/org/springframework/samples/petclinic/web/OwnerControllerTests.java 9\n",
"src/test/java/org/springframework/samples/petclinic/web/PetControllerTests.java 9\n",
"src/test/java/org/springframework/samples/petclinic/web/PetTypeFormatterTests.java 2\n",
"src/test/java/org/springframework/samples/petclinic/web/VetControllerTest.java 2\n",
"src/test/java/org/springframework/samples/petclinic/web/VetControllerTests.java 15\n",
"src/test/java/org/springframework/samples/petclinic/web/VisitControllerTests.java 10\n",
"src/test/java/org/springframework/samples/petclinic/web/VisitsAtomViewTest.java 10\n",
"src/test/java/org/springframework/samples/petclinic/web/VisitsAtomViewTestWithContainer-config.xml 3\n",
"src/test/java/org/springframework/samples/petclinic/web/VisitsAtomViewWithContainerTest.java 3\n",
"src/test/java/org/springframework/samples/petclinic/web/VisitsViewTest-config.xml 3\n",
"src/test/java/org/springframework/samples/petclinic/web/VisitsViewTest.java 4\n",
"src/test/java/org/springframework/samples/petclinic/web/VisitsViewTests-config.xml 2\n",
"src/test/java/org/springframework/samples/petclinic/web/VisitsViewTests.java 5\n",
"src/test/jmeter/petclinic_test_plan.jmx 4\n",
"src/test/resources/log4j.xml 2\n",
"src/test/resources/logback-test.xml 3\n",
"src/test/resources/org/springframework/samples/petclinic/AbstractClinicTests-context.xml 5\n",
"src/test/resources/org/springframework/samples/petclinic/hibernate/HibernateClinicTests-context.xml 3\n",
"src/test/resources/org/springframework/samples/petclinic/jdbc/JdbcClinicTests-context.xml 2\n",
"src/test/resources/org/springframework/samples/petclinic/jdbc/SimpleJdbcClinicTests-context.xml 2\n",
"src/test/resources/org/springframework/samples/petclinic/jpa/applicationContext-entityManager.xml 3\n",
"src/test/resources/org/springframework/samples/petclinic/jpa/applicationContext-hibernateAdapter.xml 2\n",
"src/test/resources/org/springframework/samples/petclinic/jpa/applicationContext-jpaCommon.xml 5\n",
"src/test/resources/org/springframework/samples/petclinic/jpa/applicationContext-openJpaAdapter.xml 2\n",
"src/test/resources/org/springframework/samples/petclinic/jpa/applicationContext-toplinkAdapter.xml 2\n",
"src/test/resources/spring/mvc-test-config.xml 1\n",
"travis.yml 2\n",
"Name: author, Length: 1674, dtype: int64"
]
},
"execution_count": 90,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"git_log['aid'] = pd.factorize(git_log.author)[0]\n",
"gs = git_log.groupby('filename')['author']\n",
"# pd.DataFrame(gs.ndim() / gs.count())\n",
"gs."
]
},
{
"cell_type": "code",
"execution_count": 70,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" additions | \n",
" deletions | \n",
" filename | \n",
" author | \n",
" aid | \n",
"
\n",
" \n",
" \n",
" \n",
" 362 | \n",
" 0 | \n",
" 3 | \n",
" .bowerrc | \n",
" Dapeng | \n",
" 7 | \n",
"
\n",
" \n",
" 1888 | \n",
" 1 | \n",
" 1 | \n",
" .bowerrc | \n",
" Antoine Rey | \n",
" 1 | \n",
"
\n",
" \n",
" 2971 | \n",
" 3 | \n",
" 0 | \n",
" .bowerrc | \n",
" Faycal Ihabritane | \n",
" 21 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" additions deletions filename author aid\n",
"362 0 3 .bowerrc Dapeng 7\n",
"1888 1 1 .bowerrc Antoine Rey 1\n",
"2971 3 0 .bowerrc Faycal Ihabritane 21"
]
},
"execution_count": 70,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"git_log[git_log['filename'] == \".bowerrc\"]"
]
},
{
"cell_type": "code",
"execution_count": 79,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" additions | \n",
" deletions | \n",
" filename | \n",
" author | \n",
" aid | \n",
"
\n",
" \n",
" \n",
" \n",
" 3023 | \n",
" 5 | \n",
" 2 | \n",
" .editorconfig | \n",
" Antoine Rey | \n",
" 1 | \n",
"
\n",
" \n",
" 3028 | \n",
" 9 | \n",
" 0 | \n",
" .editorconfig | \n",
" Antoine Rey | \n",
" 1 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" additions deletions filename author aid\n",
"3023 5 2 .editorconfig Antoine Rey 1\n",
"3028 9 0 .editorconfig Antoine Rey 1"
]
},
"execution_count": 79,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"git_log[git_log['filename'] == \".editorconfig\"]"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" additions | \n",
" deletions | \n",
" filename | \n",
" author | \n",
"
\n",
" \n",
" \n",
" \n",
" 66 | \n",
" 1 | \n",
" 0 | \n",
" .gitignore | \n",
" Dave Syer | \n",
"
\n",
" \n",
" 358 | \n",
" 2 | \n",
" 0 | \n",
" .gitignore | \n",
" Antoine Rey | \n",
"
\n",
" \n",
" 1862 | \n",
" 0 | \n",
" 1 | \n",
" .gitignore | \n",
" Patrick Crocker | \n",
"
\n",
" \n",
" 1879 | \n",
" 1 | \n",
" 0 | \n",
" .gitignore | \n",
" Antoine Rey | \n",
"
\n",
" \n",
" 3440 | \n",
" 2 | \n",
" 1 | \n",
" .gitignore | \n",
" Cyrille Le Clerc | \n",
"
\n",
" \n",
" 3519 | \n",
" 1 | \n",
" 0 | \n",
" .gitignore | \n",
" Michael Isvy | \n",
"
\n",
" \n",
" 4186 | \n",
" 1 | \n",
" 0 | \n",
" .gitignore | \n",
" Michael Isvy | \n",
"
\n",
" \n",
" 4667 | \n",
" 4 | \n",
" 0 | \n",
" .gitignore | \n",
" Michael Isvy | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" additions deletions filename author\n",
"66 1 0 .gitignore Dave Syer\n",
"358 2 0 .gitignore Antoine Rey\n",
"1862 0 1 .gitignore Patrick Crocker\n",
"1879 1 0 .gitignore Antoine Rey\n",
"3440 2 1 .gitignore Cyrille Le Clerc\n",
"3519 1 0 .gitignore Michael Isvy\n",
"4186 1 0 .gitignore Michael Isvy\n",
"4667 4 0 .gitignore Michael Isvy"
]
},
"execution_count": 42,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"git_log[git_log['filename'] == \".gitignore\"]"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" additions | \n",
" deletions | \n",
"
\n",
" \n",
" filename | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" .bowerrc | \n",
" 0.000000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" .classpath | \n",
" 1.000000 | \n",
" 1.000000 | \n",
"
\n",
" \n",
" .editorconfig | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" .gitignore | \n",
" 0.800000 | \n",
" 0.800000 | \n",
"
\n",
" \n",
" .mvn/wrapper/maven-wrapper.jar | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" .mvn/wrapper/maven-wrapper.properties | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" .project | \n",
" 0.250000 | \n",
" 0.250000 | \n",
"
\n",
" \n",
" .settings/.jsdtscope | \n",
" 0.500000 | \n",
" 0.500000 | \n",
"
\n",
" \n",
" .settings/com.springsource.server.ide.jdt.core.xml | \n",
" 0.000000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" .settings/org.eclipse.jdt.core.prefs | \n",
" 0.500000 | \n",
" 0.500000 | \n",
"
\n",
" \n",
" .settings/org.eclipse.jst.common.project.facet.core.prefs | \n",
" 0.000000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" .settings/org.eclipse.m2e.core.prefs | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" .settings/org.eclipse.m2e.wtp.prefs | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" .settings/org.eclipse.wst.common.component | \n",
" 0.333333 | \n",
" 0.333333 | \n",
"
\n",
" \n",
" .settings/org.eclipse.wst.common.project.facet.core.xml | \n",
" 0.500000 | \n",
" 0.500000 | \n",
"
\n",
" \n",
" .settings/org.eclipse.wst.jsdt.ui.superType.container | \n",
" 0.000000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" .settings/org.eclipse.wst.jsdt.ui.superType.name | \n",
" 0.000000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" .settings/org.eclipse.wst.validation.prefs | \n",
" 0.000000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" .settings/org.maven.ide.eclipse.prefs | \n",
" 0.000000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" .settings/org.springframework.ide.eclipse.beans.core.prefs | \n",
" 0.000000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" .settings/org.springframework.ide.eclipse.core.prefs | \n",
" 0.500000 | \n",
" 0.500000 | \n",
"
\n",
" \n",
" .springBeans | \n",
" 50.000000 | \n",
" 50.000000 | \n",
"
\n",
" \n",
" .travis.yml | \n",
" 0.000000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" README.md | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" authors.txt | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" bower.json | \n",
" 0.000000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" db/build.xml | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" db/dropTables.txt | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" db/emptyDB.txt | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" db/mysql/createDB.txt | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" src/test/java/org/springframework/samples/petclinic/vet/VetControllerTests.java | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" src/test/java/org/springframework/samples/petclinic/vet/VetTests.java | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" src/test/java/org/springframework/samples/petclinic/web/CrashControllerTests.java | \n",
" 3.000000 | \n",
" 3.000000 | \n",
"
\n",
" \n",
" src/test/java/org/springframework/samples/petclinic/web/OwnerControllerTests.java | \n",
" 12.000000 | \n",
" 12.000000 | \n",
"
\n",
" \n",
" src/test/java/org/springframework/samples/petclinic/web/PetControllerTests.java | \n",
" 12.000000 | \n",
" 12.000000 | \n",
"
\n",
" \n",
" src/test/java/org/springframework/samples/petclinic/web/PetTypeFormatterTests.java | \n",
" 0.000000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" src/test/java/org/springframework/samples/petclinic/web/VetControllerTest.java | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" src/test/java/org/springframework/samples/petclinic/web/VetControllerTests.java | \n",
" 20.000000 | \n",
" 20.000000 | \n",
"
\n",
" \n",
" src/test/java/org/springframework/samples/petclinic/web/VisitControllerTests.java | \n",
" 10.333333 | \n",
" 10.333333 | \n",
"
\n",
" \n",
" src/test/java/org/springframework/samples/petclinic/web/VisitsAtomViewTest.java | \n",
" 16.333333 | \n",
" 16.333333 | \n",
"
\n",
" \n",
" src/test/java/org/springframework/samples/petclinic/web/VisitsAtomViewTestWithContainer-config.xml | \n",
" 0.500000 | \n",
" 0.500000 | \n",
"
\n",
" \n",
" src/test/java/org/springframework/samples/petclinic/web/VisitsAtomViewWithContainerTest.java | \n",
" 0.500000 | \n",
" 0.500000 | \n",
"
\n",
" \n",
" src/test/java/org/springframework/samples/petclinic/web/VisitsViewTest-config.xml | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" src/test/java/org/springframework/samples/petclinic/web/VisitsViewTest.java | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" src/test/java/org/springframework/samples/petclinic/web/VisitsViewTests-config.xml | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" src/test/java/org/springframework/samples/petclinic/web/VisitsViewTests.java | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" src/test/jmeter/petclinic_test_plan.jmx | \n",
" 2.000000 | \n",
" 2.000000 | \n",
"
\n",
" \n",
" src/test/resources/log4j.xml | \n",
" 0.000000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" src/test/resources/logback-test.xml | \n",
" 0.500000 | \n",
" 0.500000 | \n",
"
\n",
" \n",
" src/test/resources/org/springframework/samples/petclinic/AbstractClinicTests-context.xml | \n",
" 0.250000 | \n",
" 0.250000 | \n",
"
\n",
" \n",
" src/test/resources/org/springframework/samples/petclinic/hibernate/HibernateClinicTests-context.xml | \n",
" 0.500000 | \n",
" 0.500000 | \n",
"
\n",
" \n",
" src/test/resources/org/springframework/samples/petclinic/jdbc/JdbcClinicTests-context.xml | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" src/test/resources/org/springframework/samples/petclinic/jdbc/SimpleJdbcClinicTests-context.xml | \n",
" 0.000000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" src/test/resources/org/springframework/samples/petclinic/jpa/applicationContext-entityManager.xml | \n",
" 0.500000 | \n",
" 0.500000 | \n",
"
\n",
" \n",
" src/test/resources/org/springframework/samples/petclinic/jpa/applicationContext-hibernateAdapter.xml | \n",
" 0.000000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" src/test/resources/org/springframework/samples/petclinic/jpa/applicationContext-jpaCommon.xml | \n",
" 0.250000 | \n",
" 0.250000 | \n",
"
\n",
" \n",
" src/test/resources/org/springframework/samples/petclinic/jpa/applicationContext-openJpaAdapter.xml | \n",
" 0.000000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" src/test/resources/org/springframework/samples/petclinic/jpa/applicationContext-toplinkAdapter.xml | \n",
" 0.000000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" src/test/resources/spring/mvc-test-config.xml | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" travis.yml | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
"
\n",
"
1674 rows × 2 columns
\n",
"
"
],
"text/plain": [
" additions deletions\n",
"filename \n",
".bowerrc 0.000000 0.000000\n",
".classpath 1.000000 1.000000\n",
".editorconfig NaN NaN\n",
".gitignore 0.800000 0.800000\n",
".mvn/wrapper/maven-wrapper.jar NaN NaN\n",
".mvn/wrapper/maven-wrapper.properties NaN NaN\n",
".project 0.250000 0.250000\n",
".settings/.jsdtscope 0.500000 0.500000\n",
".settings/com.springsource.server.ide.jdt.core.xml 0.000000 0.000000\n",
".settings/org.eclipse.jdt.core.prefs 0.500000 0.500000\n",
".settings/org.eclipse.jst.common.project.facet.... 0.000000 0.000000\n",
".settings/org.eclipse.m2e.core.prefs NaN NaN\n",
".settings/org.eclipse.m2e.wtp.prefs NaN NaN\n",
".settings/org.eclipse.wst.common.component 0.333333 0.333333\n",
".settings/org.eclipse.wst.common.project.facet.... 0.500000 0.500000\n",
".settings/org.eclipse.wst.jsdt.ui.superType.con... 0.000000 0.000000\n",
".settings/org.eclipse.wst.jsdt.ui.superType.name 0.000000 0.000000\n",
".settings/org.eclipse.wst.validation.prefs 0.000000 0.000000\n",
".settings/org.maven.ide.eclipse.prefs 0.000000 0.000000\n",
".settings/org.springframework.ide.eclipse.beans... 0.000000 0.000000\n",
".settings/org.springframework.ide.eclipse.core.... 0.500000 0.500000\n",
".springBeans 50.000000 50.000000\n",
".travis.yml 0.000000 0.000000\n",
"README.md NaN NaN\n",
"authors.txt NaN NaN\n",
"bower.json 0.000000 0.000000\n",
"db/build.xml NaN NaN\n",
"db/dropTables.txt NaN NaN\n",
"db/emptyDB.txt NaN NaN\n",
"db/mysql/createDB.txt NaN NaN\n",
"... ... ...\n",
"src/test/java/org/springframework/samples/petcl... NaN NaN\n",
"src/test/java/org/springframework/samples/petcl... NaN NaN\n",
"src/test/java/org/springframework/samples/petcl... 3.000000 3.000000\n",
"src/test/java/org/springframework/samples/petcl... 12.000000 12.000000\n",
"src/test/java/org/springframework/samples/petcl... 12.000000 12.000000\n",
"src/test/java/org/springframework/samples/petcl... 0.000000 0.000000\n",
"src/test/java/org/springframework/samples/petcl... NaN NaN\n",
"src/test/java/org/springframework/samples/petcl... 20.000000 20.000000\n",
"src/test/java/org/springframework/samples/petcl... 10.333333 10.333333\n",
"src/test/java/org/springframework/samples/petcl... 16.333333 16.333333\n",
"src/test/java/org/springframework/samples/petcl... 0.500000 0.500000\n",
"src/test/java/org/springframework/samples/petcl... 0.500000 0.500000\n",
"src/test/java/org/springframework/samples/petcl... NaN NaN\n",
"src/test/java/org/springframework/samples/petcl... NaN NaN\n",
"src/test/java/org/springframework/samples/petcl... NaN NaN\n",
"src/test/java/org/springframework/samples/petcl... NaN NaN\n",
"src/test/jmeter/petclinic_test_plan.jmx 2.000000 2.000000\n",
"src/test/resources/log4j.xml 0.000000 0.000000\n",
"src/test/resources/logback-test.xml 0.500000 0.500000\n",
"src/test/resources/org/springframework/samples/... 0.250000 0.250000\n",
"src/test/resources/org/springframework/samples/... 0.500000 0.500000\n",
"src/test/resources/org/springframework/samples/... NaN NaN\n",
"src/test/resources/org/springframework/samples/... 0.000000 0.000000\n",
"src/test/resources/org/springframework/samples/... 0.500000 0.500000\n",
"src/test/resources/org/springframework/samples/... 0.000000 0.000000\n",
"src/test/resources/org/springframework/samples/... 0.250000 0.250000\n",
"src/test/resources/org/springframework/samples/... 0.000000 0.000000\n",
"src/test/resources/org/springframework/samples/... 0.000000 0.000000\n",
"src/test/resources/spring/mvc-test-config.xml NaN NaN\n",
"travis.yml NaN NaN\n",
"\n",
"[1674 rows x 2 columns]"
]
},
"execution_count": 38,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"gb = git_log.groupby(['filename', 'author']).count()\n",
"gb.groupby(gb.index.get_level_values(0)).var()"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" additions | \n",
" deletions | \n",
"
\n",
" \n",
" filename | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" .bowerrc | \n",
" 3 | \n",
" 3 | \n",
"
\n",
" \n",
" .classpath | \n",
" 6 | \n",
" 6 | \n",
"
\n",
" \n",
" .editorconfig | \n",
" 2 | \n",
" 2 | \n",
"
\n",
" \n",
" .gitignore | \n",
" 8 | \n",
" 8 | \n",
"
\n",
" \n",
" .mvn/wrapper/maven-wrapper.jar | \n",
" 1 | \n",
" 1 | \n",
"
\n",
" \n",
" .mvn/wrapper/maven-wrapper.properties | \n",
" 1 | \n",
" 1 | \n",
"
\n",
" \n",
" .project | \n",
" 5 | \n",
" 5 | \n",
"
\n",
" \n",
" .settings/.jsdtscope | \n",
" 3 | \n",
" 3 | \n",
"
\n",
" \n",
" .settings/com.springsource.server.ide.jdt.core.xml | \n",
" 2 | \n",
" 2 | \n",
"
\n",
" \n",
" .settings/org.eclipse.jdt.core.prefs | \n",
" 3 | \n",
" 3 | \n",
"
\n",
" \n",
" .settings/org.eclipse.jst.common.project.facet.core.prefs | \n",
" 2 | \n",
" 2 | \n",
"
\n",
" \n",
" .settings/org.eclipse.m2e.core.prefs | \n",
" 2 | \n",
" 2 | \n",
"
\n",
" \n",
" .settings/org.eclipse.m2e.wtp.prefs | \n",
" 2 | \n",
" 2 | \n",
"
\n",
" \n",
" .settings/org.eclipse.wst.common.component | \n",
" 5 | \n",
" 5 | \n",
"
\n",
" \n",
" .settings/org.eclipse.wst.common.project.facet.core.xml | \n",
" 3 | \n",
" 3 | \n",
"
\n",
" \n",
" .settings/org.eclipse.wst.jsdt.ui.superType.container | \n",
" 2 | \n",
" 2 | \n",
"
\n",
" \n",
" .settings/org.eclipse.wst.jsdt.ui.superType.name | \n",
" 2 | \n",
" 2 | \n",
"
\n",
" \n",
" .settings/org.eclipse.wst.validation.prefs | \n",
" 2 | \n",
" 2 | \n",
"
\n",
" \n",
" .settings/org.maven.ide.eclipse.prefs | \n",
" 2 | \n",
" 2 | \n",
"
\n",
" \n",
" .settings/org.springframework.ide.eclipse.beans.core.prefs | \n",
" 2 | \n",
" 2 | \n",
"
\n",
" \n",
" .settings/org.springframework.ide.eclipse.core.prefs | \n",
" 3 | \n",
" 3 | \n",
"
\n",
" \n",
" .springBeans | \n",
" 14 | \n",
" 14 | \n",
"
\n",
" \n",
" .travis.yml | \n",
" 2 | \n",
" 2 | \n",
"
\n",
" \n",
" README.md | \n",
" 2 | \n",
" 2 | \n",
"
\n",
" \n",
" authors.txt | \n",
" 2 | \n",
" 2 | \n",
"
\n",
" \n",
" bower.json | \n",
" 3 | \n",
" 3 | \n",
"
\n",
" \n",
" db/build.xml | \n",
" 2 | \n",
" 2 | \n",
"
\n",
" \n",
" db/dropTables.txt | \n",
" 2 | \n",
" 2 | \n",
"
\n",
" \n",
" db/emptyDB.txt | \n",
" 2 | \n",
" 2 | \n",
"
\n",
" \n",
" db/mysql/createDB.txt | \n",
" 2 | \n",
" 2 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" src/test/java/org/springframework/samples/petclinic/vet/VetControllerTests.java | \n",
" 1 | \n",
" 1 | \n",
"
\n",
" \n",
" src/test/java/org/springframework/samples/petclinic/vet/VetTests.java | \n",
" 1 | \n",
" 1 | \n",
"
\n",
" \n",
" src/test/java/org/springframework/samples/petclinic/web/CrashControllerTests.java | \n",
" 6 | \n",
" 6 | \n",
"
\n",
" \n",
" src/test/java/org/springframework/samples/petclinic/web/OwnerControllerTests.java | \n",
" 9 | \n",
" 9 | \n",
"
\n",
" \n",
" src/test/java/org/springframework/samples/petclinic/web/PetControllerTests.java | \n",
" 9 | \n",
" 9 | \n",
"
\n",
" \n",
" src/test/java/org/springframework/samples/petclinic/web/PetTypeFormatterTests.java | \n",
" 2 | \n",
" 2 | \n",
"
\n",
" \n",
" src/test/java/org/springframework/samples/petclinic/web/VetControllerTest.java | \n",
" 2 | \n",
" 2 | \n",
"
\n",
" \n",
" src/test/java/org/springframework/samples/petclinic/web/VetControllerTests.java | \n",
" 15 | \n",
" 15 | \n",
"
\n",
" \n",
" src/test/java/org/springframework/samples/petclinic/web/VisitControllerTests.java | \n",
" 10 | \n",
" 10 | \n",
"
\n",
" \n",
" src/test/java/org/springframework/samples/petclinic/web/VisitsAtomViewTest.java | \n",
" 10 | \n",
" 10 | \n",
"
\n",
" \n",
" src/test/java/org/springframework/samples/petclinic/web/VisitsAtomViewTestWithContainer-config.xml | \n",
" 3 | \n",
" 3 | \n",
"
\n",
" \n",
" src/test/java/org/springframework/samples/petclinic/web/VisitsAtomViewWithContainerTest.java | \n",
" 3 | \n",
" 3 | \n",
"
\n",
" \n",
" src/test/java/org/springframework/samples/petclinic/web/VisitsViewTest-config.xml | \n",
" 3 | \n",
" 3 | \n",
"
\n",
" \n",
" src/test/java/org/springframework/samples/petclinic/web/VisitsViewTest.java | \n",
" 4 | \n",
" 4 | \n",
"
\n",
" \n",
" src/test/java/org/springframework/samples/petclinic/web/VisitsViewTests-config.xml | \n",
" 2 | \n",
" 2 | \n",
"
\n",
" \n",
" src/test/java/org/springframework/samples/petclinic/web/VisitsViewTests.java | \n",
" 5 | \n",
" 5 | \n",
"
\n",
" \n",
" src/test/jmeter/petclinic_test_plan.jmx | \n",
" 4 | \n",
" 4 | \n",
"
\n",
" \n",
" src/test/resources/log4j.xml | \n",
" 2 | \n",
" 2 | \n",
"
\n",
" \n",
" src/test/resources/logback-test.xml | \n",
" 3 | \n",
" 3 | \n",
"
\n",
" \n",
" src/test/resources/org/springframework/samples/petclinic/AbstractClinicTests-context.xml | \n",
" 5 | \n",
" 5 | \n",
"
\n",
" \n",
" src/test/resources/org/springframework/samples/petclinic/hibernate/HibernateClinicTests-context.xml | \n",
" 3 | \n",
" 3 | \n",
"
\n",
" \n",
" src/test/resources/org/springframework/samples/petclinic/jdbc/JdbcClinicTests-context.xml | \n",
" 2 | \n",
" 2 | \n",
"
\n",
" \n",
" src/test/resources/org/springframework/samples/petclinic/jdbc/SimpleJdbcClinicTests-context.xml | \n",
" 2 | \n",
" 2 | \n",
"
\n",
" \n",
" src/test/resources/org/springframework/samples/petclinic/jpa/applicationContext-entityManager.xml | \n",
" 3 | \n",
" 3 | \n",
"
\n",
" \n",
" src/test/resources/org/springframework/samples/petclinic/jpa/applicationContext-hibernateAdapter.xml | \n",
" 2 | \n",
" 2 | \n",
"
\n",
" \n",
" src/test/resources/org/springframework/samples/petclinic/jpa/applicationContext-jpaCommon.xml | \n",
" 5 | \n",
" 5 | \n",
"
\n",
" \n",
" src/test/resources/org/springframework/samples/petclinic/jpa/applicationContext-openJpaAdapter.xml | \n",
" 2 | \n",
" 2 | \n",
"
\n",
" \n",
" src/test/resources/org/springframework/samples/petclinic/jpa/applicationContext-toplinkAdapter.xml | \n",
" 2 | \n",
" 2 | \n",
"
\n",
" \n",
" src/test/resources/spring/mvc-test-config.xml | \n",
" 1 | \n",
" 1 | \n",
"
\n",
" \n",
" travis.yml | \n",
" 2 | \n",
" 2 | \n",
"
\n",
" \n",
"
\n",
"
1674 rows × 2 columns
\n",
"
"
],
"text/plain": [
" additions deletions\n",
"filename \n",
".bowerrc 3 3\n",
".classpath 6 6\n",
".editorconfig 2 2\n",
".gitignore 8 8\n",
".mvn/wrapper/maven-wrapper.jar 1 1\n",
".mvn/wrapper/maven-wrapper.properties 1 1\n",
".project 5 5\n",
".settings/.jsdtscope 3 3\n",
".settings/com.springsource.server.ide.jdt.core.xml 2 2\n",
".settings/org.eclipse.jdt.core.prefs 3 3\n",
".settings/org.eclipse.jst.common.project.facet.... 2 2\n",
".settings/org.eclipse.m2e.core.prefs 2 2\n",
".settings/org.eclipse.m2e.wtp.prefs 2 2\n",
".settings/org.eclipse.wst.common.component 5 5\n",
".settings/org.eclipse.wst.common.project.facet.... 3 3\n",
".settings/org.eclipse.wst.jsdt.ui.superType.con... 2 2\n",
".settings/org.eclipse.wst.jsdt.ui.superType.name 2 2\n",
".settings/org.eclipse.wst.validation.prefs 2 2\n",
".settings/org.maven.ide.eclipse.prefs 2 2\n",
".settings/org.springframework.ide.eclipse.beans... 2 2\n",
".settings/org.springframework.ide.eclipse.core.... 3 3\n",
".springBeans 14 14\n",
".travis.yml 2 2\n",
"README.md 2 2\n",
"authors.txt 2 2\n",
"bower.json 3 3\n",
"db/build.xml 2 2\n",
"db/dropTables.txt 2 2\n",
"db/emptyDB.txt 2 2\n",
"db/mysql/createDB.txt 2 2\n",
"... ... ...\n",
"src/test/java/org/springframework/samples/petcl... 1 1\n",
"src/test/java/org/springframework/samples/petcl... 1 1\n",
"src/test/java/org/springframework/samples/petcl... 6 6\n",
"src/test/java/org/springframework/samples/petcl... 9 9\n",
"src/test/java/org/springframework/samples/petcl... 9 9\n",
"src/test/java/org/springframework/samples/petcl... 2 2\n",
"src/test/java/org/springframework/samples/petcl... 2 2\n",
"src/test/java/org/springframework/samples/petcl... 15 15\n",
"src/test/java/org/springframework/samples/petcl... 10 10\n",
"src/test/java/org/springframework/samples/petcl... 10 10\n",
"src/test/java/org/springframework/samples/petcl... 3 3\n",
"src/test/java/org/springframework/samples/petcl... 3 3\n",
"src/test/java/org/springframework/samples/petcl... 3 3\n",
"src/test/java/org/springframework/samples/petcl... 4 4\n",
"src/test/java/org/springframework/samples/petcl... 2 2\n",
"src/test/java/org/springframework/samples/petcl... 5 5\n",
"src/test/jmeter/petclinic_test_plan.jmx 4 4\n",
"src/test/resources/log4j.xml 2 2\n",
"src/test/resources/logback-test.xml 3 3\n",
"src/test/resources/org/springframework/samples/... 5 5\n",
"src/test/resources/org/springframework/samples/... 3 3\n",
"src/test/resources/org/springframework/samples/... 2 2\n",
"src/test/resources/org/springframework/samples/... 2 2\n",
"src/test/resources/org/springframework/samples/... 3 3\n",
"src/test/resources/org/springframework/samples/... 2 2\n",
"src/test/resources/org/springframework/samples/... 5 5\n",
"src/test/resources/org/springframework/samples/... 2 2\n",
"src/test/resources/org/springframework/samples/... 2 2\n",
"src/test/resources/spring/mvc-test-config.xml 1 1\n",
"travis.yml 2 2\n",
"\n",
"[1674 rows x 2 columns]"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ownership = git_log.groupby(['filename', 'author']).count()\n",
"ownership.groupby(\n",
" [ownership.index.get_level_values(0)]).sum()"
]
}
],
"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.6.4"
}
},
"nbformat": 4,
"nbformat_minor": 2
}