Skip to content
Snippets Groups Projects
Commit edf0ff6f authored by Benoît Courty's avatar Benoît Courty
Browse files

Amendements par année

parent 382a71d6
No related branches found
No related tags found
No related merge requests found
......@@ -25,7 +25,7 @@ entries:
title: Etude des sujets des amendements PLFSS - Graph
url: LDA_show.html
- output: web,pdf
title: Title
title: "Etude des r\xE9f\xE9rences des amendements"
url: eda_ref_amendements.html
output: web
title: etudes_amendements
......
This diff is collapsed.
......@@ -6,6 +6,6 @@
"Etude des sujets des amendements PLFSS - Nuage de mots": "word_count.html",
"Etude des sujets des amendements PLFSS (LDA)": "LDA_compute.html",
"Etude des sujets des amendements PLFSS - Graph": "LDA_show.html",
"Title": "eda_ref_amendements.html"
"Etude des r\u00e9f\u00e9rences des amendements": "eda_ref_amendements.html"
}
}
\ No newline at end of file
......@@ -2,7 +2,7 @@
__all__ = ["index", "modules", "custom_doc_links", "git_url"]
index = {"load_data": "02_word_count.ipynb",
index = {"load_data": "eda_ref_amendements.ipynb",
"amdt": "02_word_count.ipynb",
"build_word_cloud": "02_word_count.ipynb",
"display_distinct": "eda_ref_amendements.ipynb"}
......
# AUTOGENERATED! DO NOT EDIT! File to edit: notebook/eda_ref_amendements.ipynb (unless otherwise specified).
__all__ = ['display_distinct']
__all__ = ['load_data', 'display_distinct']
# Cell
def load_data(file):
df = pd.read_csv(file)
df = df.applymap(lambda s:s.lower() if type(s) == str else s)
return df
# Cell
def display_distinct(df):
......@@ -8,7 +14,7 @@ def display_distinct(df):
to_be_removed = []
for column in columns:
nb_unique_values = eval('df["' + column + '"].nunique()')
print("Distinct values in", column, ":", nb_unique_values)
print("Nombres de valeurs distinctes pour", column, ":", nb_unique_values)
if nb_unique_values > 50:
to_be_removed.append(column)
print("\nColumn with too many distinct values :\n", to_be_removed)
......@@ -17,5 +23,5 @@ def display_distinct(df):
'''
columns_redux = [item for item in columns if item not in to_be_removed ]
for column in columns_redux:
print("Distinct values in", column)
print("\n\nValeurs distinctes pour", column, ':')
eval('print(df["' + column + '"].value_counts())')
\ No newline at end of file
%% Cell type:code id:human-workstation tags:
%% Cell type:code id:macro-heritage tags:
``` python
#default_exp eda_ref
```
%% Cell type:markdown id:amber-radius tags:
%% Cell type:markdown id:appropriate-tokyo tags:
# Etude des références des amendements
%% Cell type:code id:mechanical-pantyhose tags:
%% Cell type:code id:hindu-surface tags:
``` python
#hide
#!pip3 install pandas matplotlib
```
%% Cell type:code id:addressed-childhood tags:
%% Cell type:code id:loaded-inventory tags:
``` python
#hide
import pandas as pd
```
%% Cell type:code id:metric-spectacular tags:
%% Cell type:code id:circular-spanish tags:
``` python
#hide
# Put these at the top of every notebook, to get automatic reloading and inline plotting
%reload_ext autoreload
%autoreload 2
%matplotlib inline
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"
```
%% Cell type:code id:hispanic-theta tags:
%% Cell type:code id:excessive-danish tags:
``` python
#export
def load_data(file):
df = pd.read_csv(file)
df = df.applymap(lambda s:s.lower() if type(s) == str else s)
return df
```
%% Cell type:code id:affiliated-brooks tags:
%% Cell type:code id:seasonal-planner tags:
``` python
files = {
"references_amendements_plfss_2020-2021" : "https://github.com/leximpact/donnees-extraites-assemblee/raw/main/references_amendements_plfss_2020-2021.csv",
#"references_amendements_plfss_2020-2021" : "https://github.com/leximpact/donnees-extraites-assemblee/raw/main/references_amendements_plfss_2020-2021.csv",
"references_amendements_affaires_sociales" : "https://github.com/leximpact/donnees-extraites-assemblee/raw/main/references_amendements_affaires_sociales.csv"
}
for k in files.keys():
print(k, files.get(k))
df = load_data(files.get(k))
df["law_article"] = df.law + ' ' + df.article
df.law_article.value_counts().to_frame().to_csv(k + '-top-article.csv')
```
%% Output
references_amendements_plfss_2020-2021 https://github.com/leximpact/donnees-extraites-assemblee/raw/main/references_amendements_plfss_2020-2021.csv
references_amendements_affaires_sociales https://github.com/leximpact/donnees-extraites-assemblee/raw/main/references_amendements_affaires_sociales.csv
/home/ben/.local/lib/python3.8/site-packages/IPython/core/interactiveshell.py:3347: DtypeWarning: Columns (3,8,11,16,25) have mixed types.Specify dtype option on import or set low_memory=False.
if (await self.run_code(code, result, async_=asy)):
%% Cell type:code id:greek-parade tags:
%% Cell type:code id:spanish-mercury tags:
``` python
#export
def display_distinct(df):
columns = df.columns
to_be_removed = []
for column in columns:
nb_unique_values = eval('df["' + column + '"].nunique()')
print("Nombres de valeurs distinctes pour", column, ":", nb_unique_values)
if nb_unique_values > 50:
to_be_removed.append(column)
print("\nColumn with too many distinct values :\n", to_be_removed)
'''
Display distinct values
'''
columns_redux = [item for item in columns if item not in to_be_removed ]
for column in columns_redux:
print("\n\nValeurs distinctes pour", column, ':')
eval('print(df["' + column + '"].value_counts())')
```
%% Cell type:code id:frank-devon tags:
%% Cell type:code id:cultural-tourist tags:
``` python
display_distinct(df)
```
%% Output
Nombres de valeurs distinctes pour alinea : 203
Nombres de valeurs distinctes pour alinea1 : 83
Nombres de valeurs distinctes pour alinea2 : 34
Nombres de valeurs distinctes pour alinea3 : 4
Nombres de valeurs distinctes pour article : 1633
Nombres de valeurs distinctes pour auteur : 551
Nombres de valeurs distinctes pour auteurType : 3
Nombres de valeurs distinctes pour book : 24
Nombres de valeurs distinctes pour book1 : 1
Nombres de valeurs distinctes pour chapter : 23
Nombres de valeurs distinctes pour code-part : 14
Nombres de valeurs distinctes pour code-part1 : 1
Nombres de valeurs distinctes pour etat : 0
Nombres de valeurs distinctes pour groupePolitique : 11
Nombres de valeurs distinctes pour law : 218
Nombres de valeurs distinctes pour lawType : 9
Nombres de valeurs distinctes pour paragraph : 18
Nombres de valeurs distinctes pour paragraph1 : 2
Nombres de valeurs distinctes pour section : 32
Nombres de valeurs distinctes pour section1 : 6
Nombres de valeurs distinctes pour sentence : 14
Nombres de valeurs distinctes pour sort : 5
Nombres de valeurs distinctes pour text : 5838
Nombres de valeurs distinctes pour texteLegislatifUid : 118
Nombres de valeurs distinctes pour title : 31
Nombres de valeurs distinctes pour title1 : 2
Nombres de valeurs distinctes pour uid : 30471
Nombres de valeurs distinctes pour year : 5
Nombres de valeurs distinctes pour law_article : 1120
Column with too many distinct values :
['alinea', 'alinea1', 'article', 'auteur', 'law', 'text', 'texteLegislatifUid', 'uid', 'law_article']
Valeurs distinctes pour alinea2 :
1 235
2 132
3 70
a order: a 62
c order: c 47
b order: b 39
indirect: -1 26
1° order: 1 23
13° order: 13 12
d order: d 9
5 6
3° order: 3 6
a bis order: a 5
10° order: 10 4
5° order: 5 4
10° order: 10 4
8° order: 8 3
7° order: 7 3
9° order: 9 3
6° order: 6 3
14° order: 14 3
7° order: 7 3
6° order: 6 3
11° order: 11 3
4 2
a ter order: a 2
c quinquies order: c 2
f order: f 2
2° order: 2 2
c quinquies order: c 2
a ter order: a 2
4 2
indirect: 1 2
b bis order: b 1
e order: e 1
v order: 5 1
7 1
4° order: 4 1
b bis order: b 1
15° order: 15 1
e order: e 1
j order: j 1
7 1
Name: alinea2, dtype: int64
Valeurs distinctes pour alinea3 :
2 8
2.0 3
5.0 1
i order: i 1
Name: alinea3, dtype: int64
Valeurs distinctes pour auteurType :
député 126689
gouvernement 4441
rapporteur 3604
Name: auteurType, dtype: int64
Valeurs distinctes pour book :
ier 457
indirect: 1 372
ii 265
iii 248
iv 143
indirect: (relative: 0) 84
vii 83
v 51
vi 47
1 37
i 20
viii 11
2 9
ii indirect: (relative: 0) 7
ix 6
iii indirect: (relative: 0) 6
ix 6
1er 5
4 4
8 3
vii indirect: (relative: 0) 3
6 2
8 3
3 2
7 2
6 2
5 1
Name: book, dtype: int64
Valeurs distinctes pour book1 :
ier 4
Name: book1, dtype: int64
Valeurs distinctes pour chapter :
ier 405
ii 352
indirect: 1 188
iii 149
iv 139
indirect: (relative: 0) 132
v 119
1er 35
vi 33
i 32
vii 29
2 27
7 16
viii 9
3 8
4 7
5 7
iii indirect: (relative: 0) 3
x 2
ix 2
1 1
xx 1
10 1
Name: chapter, dtype: int64
Valeurs distinctes pour code-part :
indirect: 1 689
order: 2 277
order: 3 220
order: 4 152
order: 6 96
order: 5 53
order: 7 32
législative 7
indirect: (relative: 0) 6
réglementaire 3
réglementaire indirect: 1 3
iv 3
iii 3
réglementaire indirect: 1 3
indirect: -1 1
Name: code-part, dtype: int64
Valeurs distinctes pour code-part1 :
order: 2 3
Name: code-part1, dtype: int64
Valeurs distinctes pour etat :
Series([], Name: etat, dtype: int64)
Valeurs distinctes pour groupePolitique :
lr 47932
larem 18331
lt 12586
soc 8532
dem 6740
fi 6452
agir ens 6338
gdr 4246
udi-i 3110
ni 2552
eds 2087
Name: groupePolitique, dtype: int64
Valeurs distinctes pour lawType :
code 54370
loi 2748
constitution 2169
règlement 236
directive 230
arrêté 71
ordonnance 24
décret 16
loi constitutionnelle 2
Name: lawType, dtype: int64
Valeurs distinctes pour paragraph :
indirect: (relative: -1) 34
2 18
indirect: (relative: undefined) 17
1 14
3 10
4 9
5 9
indirect: (relative: 1) 8
i 6
ii 4
6 3
indirect: 1 2
8 2
indirect: (relative: 0) 2
1er 1
iv 1
8 2
7 1
iv 1
iii 1
1er 1
Name: paragraph, dtype: int64
Valeurs distinctes pour paragraph1 :
1.0 2
4.0 1
Name: paragraph1, dtype: int64
Valeurs distinctes pour section :
ii 159
v 145
2 130
1 110
3 94
5 50
4 40
indirect: (relative: 0) 36
iv 27
vii 24
6 14
i 13
iii 13
i 13
12 12
vi 6
13 6
vi 6
xx 6
viii 5
11 4
indirect: 1 4
order: 2 3
15 3
order: 3 2
16 2
7 2
x 2
16 2
3 indirect: (relative: 0) 2
01 1
0 1
order: 3 2
xi 1
14 1
01 1
8 1
xi 1
0 1
Name: section, dtype: int64
Valeurs distinctes pour section1 :
indirect: 1 54
1 20
2 17
3 15
4 9
5 2
Name: section1, dtype: int64
Valeurs distinctes pour sentence :
1 3847
2 2333
indirect: -1 693
3 302
indirect: (relative: 0) 150
4 58
6 29
5 21
indirect: 1 20
10 3
7 2
indirect: (relative: -1) 2
8 1
7 2
9 1
8 1
Name: sentence, dtype: int64
Valeurs distinctes pour sort :
rejeté 67408
non soutenu 30175
adopté 18779
retiré 12930
tombé 5442
Name: sort, dtype: int64
Valeurs distinctes pour title :
ii 438
ier 348
iii 345
iv 230
indirect: 1 141
indirect: (relative: 0) 138
v 80
vi 65
x 47
3 20
1er 18
i 17
ix 12
6 12
ix 12
viii 10
xii 10
vii 10
xii 10
4 9
ii indirect: (relative: 0) 7
xiii 5
7 5
xiii 5
1 4
ier indirect: (relative: 0) 2
iv indirect: (relative: 0) 2
indirect: (relative: -1) 2
ier indirect: (relative: 0) 2
2 1
9 1
xi 1
xvii 1
xv 1
5 1
xi 1
xv 1
9 1
Name: title, dtype: int64
Valeurs distinctes pour title1 :
6.0 2
ier 1
Name: title1, dtype: int64
Valeurs distinctes pour year :
2018.0 43515
2019.0 35557
2020.0 34372
2017.0 17918
2021.0 763
Name: year, dtype: int64
%% Cell type:code id:checked-irish tags:
%% Cell type:code id:living-aaron tags:
``` python
df.head()
```
%% Output
alinea alinea1 alinea2 alinea3 article auteur auteurType \
0 9° order: 9 NaN NaN NaN NaN elimas nathalie député
1 NaN NaN NaN NaN NaN elimas nathalie député
2 NaN NaN NaN NaN NaN elimas nathalie député
3 i order: 1 NaN NaN NaN NaN elimas nathalie député
4 NaN NaN NaN NaN 575 elimas nathalie député
book book1 chapter ... section1 sentence sort \
0 NaN NaN NaN ... NaN NaN retiré
1 NaN NaN NaN ... NaN NaN retiré
2 NaN NaN NaN ... NaN NaN retiré
3 NaN NaN NaN ... NaN NaN retiré
4 NaN NaN NaN ... NaN NaN retiré
text texteLegislatifUid title \
0 le 9° pionanr5l15b0228 NaN
1 du code général des impôts pionanr5l15b0228 NaN
2 du code de l’action sociale et des familles pionanr5l15b0228 NaN
3 du i pionanr5l15b0228 NaN
4 aux articles 575 et 575 a du code général des ... pionanr5l15b0228 NaN
title1 uid year \
0 NaN amanr5l15po420120b0228p0d1n000002 2017.0
1 NaN amanr5l15po420120b0228p0d1n000002 2017.0
2 NaN amanr5l15po420120b0228p0d1n000002 2017.0
3 NaN amanr5l15po420120b0228p0d1n000002 2017.0
4 NaN amanr5l15po420120b0228p0d1n000002 2017.0
law_article
0 NaN
1 NaN
2 NaN
3 NaN
4 code général des impôts 575
[5 rows x 29 columns]
%% Cell type:markdown id:average-basics tags:
%% Cell type:markdown id:weighted-anderson tags:
TODO :
- Adoptés par parti
- Article par année
- Adoptés par article
%% Cell type:code id:elect-throat tags:
%% Cell type:markdown id:rational-anger tags:
## Nombre d'amendements par article, par année
%% Cell type:code id:waiting-pursuit tags:
``` python
import numpy as np
for y in df.year.unique():
if np.isnan(y):
continue
y = int(y)
print(y)
df_tmp = df.query("year == @y")["law_article"]
df_tmp.value_counts().to_frame().head(10)
```
%% Output
2017
law_article
code général des impôts 575 1286
code général des impôts 575 a 1286
code des douanes 265 7
indirect: (relative: 0) 1649 quater e 6
indirect: (relative: 0) 1649 quater h 6
code général des impôts 1600 6
code général des impôts 1649 quater e 5
code général des impôts 1649 quater h 5
code général des impôts 199 terdecies-0 a 5
code général des impôts 154 bis-0 a 4
2018
law_article
code général des impôts 575 3140
code général des impôts 575 a 3137
code général des impôts 39 ab 31
code général des impôts 39 a 31
code général des impôts 39 ak 31
code général des impôts 39 ac 31
code de l’environnement l541-10-6 25
constitution 34 18
code général des impôts 39 g 17
code général des impôts 278-0 bis 16
2019
law_article
code général des impôts 575 2691
code général des impôts 575 a 2690
code général des collectivités territoriales d2... 12
code général des collectivités territoriales d2... 12
code général des collectivités territoriales d2... 12
code des transports l1431-3 12
code de l’entrée et du séjour des étrangers et ... 11
code de la construction et de l’habitation l411-2 9
code général des impôts 1595 8
code général des impôts 1594 a 8
2020
law_article
code général des impôts 575 a 3319
code général des impôts 575 3318
indirect: (relative: 0) 4 18
code général des collectivités territoriales l1... 18
code général des impôts 1519 h 13
code général des impôts 1594 d 12
2011-1977 du 2011-12-28 46 11
code de la construction et de l’habitation l411-2 11
code de la sécurité sociale l162-21-3 10
code des douanes 265 10
2021
law_article
code général des impôts 575 a 7
code général des impôts 575 7
code de la santé publique l1110-12 1
code de la sécurité sociale l215-1 1
code de l’éducation d821-1 1
code de la santé publique l1110-4 1
%% Cell type:code id:interpreted-trading tags:
``` python
```
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment