そもそもどんなデータを扱うの?#

ここでは,本書で分析対象とするデータについて簡単に紹介し,基礎分析を実施します.なお,このデータはMADB Labでv1.0として公開されているものこちらの前処理を実施したものです.

下準備#

import pandas as pd

import warnings
warnings.filterwarnings('ignore')
# 前処理の結果,以下に分析対象ファイルが格納されていることを想定
PATH_DATA = '../../data/preprocess/out/episodes.csv'
df = pd.read_csv(PATH_DATA)

概要#

df

  • 週刊少年サンデー

  • 週刊少年ジャンプ

  • 週刊少年チャンピオン

  • 週刊少年マガジン

1970-07-27から2017-07-06までのすべての掲載作品のデータを格納したDataFrameです. まずはサイズを見てみましょう.

df.shape
(179931, 17)

各週の掲載作品を一行ずつ格納しているため,合計で約18万行程度の規模になります. 以下に,各列の構成を示します.

df.columns
Index(['mcname', 'miid', 'miname', 'cid', 'cname', 'epname', 'creator',
       'pageStart', 'pageEnd', 'numberOfPages', 'datePublished', 'price',
       'publisher', 'editor', 'pages', 'pageEndMax', 'pageStartPosition'],
      dtype='object')
  • mcname: 雑誌名(Mgazine Collection NAME

  • miid:雑誌巻号ID(Magazine Item ID

  • miname: 雑誌巻号名(Magazine Item NAME

  • cid: マンガ作品ID(Comic ID

  • cname: マンガ作品名(Comic NAME

  • epname: 各話タイトル(EPisode NAME

  • creator: 作者名

  • pageStart: 開始ページ

  • pageEnd: 終了ページ

  • numberOfPages: 雑誌の合計ページ数

  • datePublished: 雑誌の発行日

  • price: 雑誌の価格

  • publisher: 雑誌の出版社

  • editor: 雑誌の編集者(編集長)

  • pages: 各話のページ数(pageEnd - pageStart + 1)

  • pageEndMax: 雑誌に掲載されているマンガ作品のうち,pageEndの最大値

  • pageStartPosition: 各話のpageStartの相対的な位置(pageStart / pageEndMax

冒頭数行を見て,データのイメージを掴んでみましょう.

df.head()
mcname miid miname cid cname epname creator pageStart pageEnd numberOfPages datePublished price publisher editor pages pageEndMax pageStartPosition
0 週刊少年ジャンプ M616363 週刊少年ジャンプ 1970年 表示号数31 C88180 男一匹ガキ大将 土佐の源蔵の巻 本宮ひろ志 7.0 37.0 280.0 1970-07-27 80.0 集英社 長野規 31.0 275.0 0.025455
1 週刊少年チャンピオン M558279 週刊少年チャンピオン 1970年 表示号数14 C94272 朝日の恋人 NaN かざま鋭二 15.0 43.0 292.0 1970-07-27 80.0 秋田書店 ∥ アキタショテン 成田清美 29.0 290.0 0.051724
2 週刊少年ジャンプ M616363 週刊少年ジャンプ 1970年 表示号数31 C87448 ど根性ガエル 男はつらいよの巻 吉沢やすみ 39.0 53.0 280.0 1970-07-27 80.0 集英社 長野規 15.0 275.0 0.141818
3 週刊少年チャンピオン M558279 週刊少年チャンピオン 1970年 表示号数14 C94289 あばしり一家 アバシリ吉三の美人地獄編 永井豪 48.0 66.0 292.0 1970-07-27 80.0 秋田書店 ∥ アキタショテン 成田清美 19.0 290.0 0.165517
4 週刊少年ジャンプ M616363 週刊少年ジャンプ 1970年 表示号数31 C88021 あらし!三匹 ミヒル登場の巻 池沢さとし 56.0 70.0 280.0 1970-07-27 80.0 集英社 長野規 15.0 275.0 0.203636

pandasdescribe()コマンドでざっくり集計してみます.

df.describe()
pageStart pageEnd numberOfPages price pages pageEndMax pageStartPosition
count 179931.000000 179931.000000 179624.000000 179893.000000 179931.000000 179931.000000 179931.000000
mean 210.845105 228.371240 417.376325 203.871740 18.526135 408.249379 0.514837
std 123.860878 122.038708 67.418723 41.955489 7.712730 69.804101 0.283146
min 1.000000 1.000000 36.000000 80.000000 1.000000 200.000000 0.002045
25% 107.000000 126.000000 356.000000 180.000000 17.000000 346.000000 0.274840
50% 205.000000 222.000000 437.000000 210.000000 19.000000 433.000000 0.520588
75% 305.000000 322.000000 464.000000 236.000000 20.000000 457.000000 0.759626
max 581.000000 600.000000 600.000000 371.000000 487.000000 600.000000 1.000000
df.isna().sum().reset_index()
index 0
0 mcname 0
1 miid 0
2 miname 0
3 cid 9
4 cname 9
5 epname 26807
6 creator 441
7 pageStart 0
8 pageEnd 0
9 numberOfPages 307
10 datePublished 0
11 price 38
12 publisher 24658
13 editor 2092
14 pages 0
15 pageEndMax 0
16 pageStartPosition 0

前処理が原因の欠測

numberOfPagespriceに関しては,想定外のパターンのデータをNaNに変換するよう前処理を施しています.詳細はAppendixをご参照ください.

特にepnamepublisherの欠測が多いことがわかります.

列ごとの基礎分析#

mcname(雑誌名)#

df['mcname'].value_counts().reset_index()
index mcname
0 週刊少年サンデー 46172
1 週刊少年チャンピオン 45420
2 週刊少年マガジン 45312
3 週刊少年ジャンプ 43027

上記はmcnameごとの行数を表します.それぞれ同一期間で集計しましたが,掲載作品数の違いが生じています.

miname(雑誌巻号名)#

ユニークなminame数を集計します.

df['miname'].nunique()
9220

mcname(雑誌)ごとに集計したminame(雑誌巻号)は:

df.groupby('mcname')['miname'].nunique().reset_index()
mcname miname
0 週刊少年サンデー 2304
1 週刊少年ジャンプ 2301
2 週刊少年チャンピオン 2314
3 週刊少年マガジン 2301

ほぼ同数ですが,雑誌によって微妙に巻号数が異なることがわかります.

次は,miname(雑誌巻号)ごとにmcname(マンガ作品)数を集計してみます.

df.groupby('miname')['cname'].nunique().sort_values().reset_index()
miname cname
0 週刊少年マガジン 1975年 表示号数1 8
1 週刊少年マガジン 1971年 表示号数1 8
2 週刊少年マガジン 1970年 表示号数51 9
3 週刊少年マガジン 1974年 表示号数45 9
4 週刊少年マガジン 1974年 表示号数44 9
... ... ...
9215 週刊少年マガジン 2010年 表示号数1 35
9216 週刊少年チャンピオン 2004年 表示号数1 37
9217 週刊少年ジャンプ 2014年 表示号数4 37
9218 週刊少年ジャンプ 2003年 表示号数37 40
9219 週刊少年サンデー 2013年 表示号数6 49

9220 rows × 2 columns

1970年付近の黎明期は掲載数が少なめだったようです.また,雑誌によってタイミングはバラバラですが,非常に沢山のマンガを掲載する外れ値が存在することもわかります.

cname(マンガ作品名)#

ユニークなcname(マンガ作品)数を集計します.

df['cname'].nunique()
6836

mcname(雑誌)ごとにcname(マンガ作品)数を集計します.

df.groupby('mcname')['cname'].nunique().reset_index()
mcname cname
0 週刊少年サンデー 1486
1 週刊少年ジャンプ 2107
2 週刊少年チャンピオン 1713
3 週刊少年マガジン 1561

ジャンプが圧倒的に多いですね….試しにcname(マンガ作品)ごとに掲載数を集計してみます.

df_tmp = df[['mcname', 'cname']].value_counts().reset_index()
df_tmp.columns = ['mcname', 'cname', 'counts']
df_tmp
mcname cname counts
0 週刊少年ジャンプ こちら葛飾区亀有公園前派出所 1968
1 週刊少年マガジン はじめの一歩 1184
2 週刊少年サンデー 名探偵コナン 1009
3 週刊少年ジャンプ ONE PIECE 890
4 週刊少年サンデー MAJOR 748
... ... ... ...
6862 週刊少年ジャンプ 大山岳 1
6863 週刊少年ジャンプ 大宮ジェット 1
6864 週刊少年ジャンプ 大喜利大会!! 1
6865 週刊少年ジャンプ 大仮面 1
6866 週刊少年マガジン ~HWGP~ 東村山ウエスト・ゲート・パーク 1

6867 rows × 3 columns

あれ,あの長編作品は…?

シーズンごとに作品名が変わっているシリーズ作品(ドカベン,刃牙,浦鉄,ジョジョ等)は,それぞれ別作品として集計されていることにご注意ください.

連載期間が長いものを見てみましょう.こち亀,はじめの一歩,名探偵コナン,ONEPIECE,MAJORと各雑誌のレジェンドが連なります. 一方で,連載期間が短いものの中には,企画ものや読み切りが存在するようです.

雑誌ごとに,マンガ作品の連載期間に関して基礎集計します.

df_tmp.groupby('mcname')['counts'].describe()
count mean std min 25% 50% 75% max
mcname
週刊少年サンデー 1486.0 31.069314 73.993766 1.0 1.0 2.0 27.0 1009.0
週刊少年ジャンプ 2107.0 20.420503 75.056735 1.0 1.0 1.0 11.0 1968.0
週刊少年チャンピオン 1713.0 26.514302 60.126900 1.0 1.0 3.0 24.0 635.0
週刊少年マガジン 1561.0 29.024984 75.407882 1.0 1.0 2.0 21.0 1184.0

やはりジャンプの平均連載期間が,他誌と比べて短いことがわかります.

epname(各話タイトル)#

ユニークなepname(各話タイトル)数を集計します.

df['epname'].nunique()
150310

意外と重複しているようです.集計してみます.

df['epname'].value_counts().reset_index()
index epname
0 プロ野球編 186
1 後編 134
2 前編 118
3 最終回 82
4 第三部 孤狼青春編 81
... ... ...
150305 35発目★ぶりちん 笑え!!笑え!!笑え!! 1
150306 ◆第18話◆しゃがらの剣 1
150307 BOX22 / 苦悩と元気の素!! 1
150308 第167話❤恋文 1
150309 研究その63 スポーツ漫画のススメ 2 1

150310 rows × 2 columns

プロ野球編ってことは….

df[df['epname']=='プロ野球編']['cname'].value_counts().reset_index()
index cname
0 ドカベン 186

やっぱりドカベンですね!ドカベンってもしかして〇〇編の粒度でしかタイトルをつけないのでしょうか…?ドカベンのepnameを集計してみます.

df[df['cname']=='ドカベン']['epname'].value_counts().reset_index()
index epname
0 プロ野球編 186
1 新潟明訓対神奈川明訓 1
2 外伝 不知火・土門伝説 1
3 殿馬一人外伝 秘打「白鳥の湖」誕生秘話 1
df[df['cname']=='ドカベン']['epname'].isna().sum()
446

プロ野球編以外のドカベンの各話タイトルは欠測しているため,これ以上のことはわからなそうです.

creator(作者)#

dfに存在するcreator(作者)数を集計します.

df['creator'].nunique()
2743

合計作品数が多いcreatorを調べてみます.

df['creator'].value_counts().reset_index().head(10)
index creator
0 水島新司 2969
1 秋本治 1876
2 高橋留美子 1736
3 浜岡賢次 1381
4 青山剛昌 1286
5 あだち充 1270
6 森川ジョージ 1224
7 満田拓也 1223
8 板垣恵介 1170
9 藤田和日郎 1102

メンツが強すぎます…. 個人的にはこち亀の秋本治先生が一番かなと予想していましたが,水島新司先生が圧倒的でした.

ちなみに,こち亀のcreatorを集計すると以下のようになります.

df[df['cname']=='こちら葛飾区亀有公園前派出所']['creator'].value_counts().reset_index()
index creator
0 秋本治 1866
1 山止たつひこ 101
2 秋本治ととみさわちなつ 1

秋本治先生は,デビュー時山止たつひこというペンネームを使っていました.

(この101話分を足しても全然追いつかない水島新司先生がすごすぎますが…)

pageStart(開始ページ)#

pageStart(開始ページ)についてdescribe()で基礎集計すると,以下のようになります.

df['pageStart'].describe().reset_index()
index pageStart
0 count 179931.000000
1 mean 210.845105
2 std 123.860878
3 min 1.000000
4 25% 107.000000
5 50% 205.000000
6 75% 305.000000
7 max 581.000000

pageEnd(終了ページ)#

pageEnd(終了ページ)についてdescribe()で基礎集計すると,以下のようになります.

df['pageEnd'].describe().reset_index()
index pageEnd
0 count 179931.000000
1 mean 228.371240
2 std 122.038708
3 min 1.000000
4 25% 126.000000
5 50% 222.000000
6 75% 322.000000
7 max 600.000000

numberOfPages(各号の合計ページ数)#

numberOfPages(雑誌の合計ページ数)をdescribeで基礎集計します. なお,dfをそのままdescribeしてしまうと掲載作品数が多い雑誌巻号にバイアスのかかった統計量になってしまうため注意が必要です. そこで,ここではminameで中間集計したdf_tmpdescribeします.

df_tmp = df.groupby('miname')[
    ['numberOfPages']].first().reset_index()
df_tmp['numberOfPages'].describe().reset_index()
index numberOfPages
0 count 9207.000000
1 mean 402.711089
2 std 72.049837
3 min 36.000000
4 25% 344.000000
5 50% 420.000000
6 75% 458.000000
7 max 600.000000

最小値が小さすぎる気がします. 試しにnumberOfPagesでソートすると,

df_tmp.sort_values('numberOfPages').head(10)
miname numberOfPages
7843 週刊少年マガジン 1989年 表示号数10 36.0
6669 週刊少年チャンピオン 2012年 表示号数28 36.0
5839 週刊少年チャンピオン 1995年 表示号数13 214.0
2480 週刊少年ジャンプ 1974年 表示号数11 234.0
7099 週刊少年マガジン 1974年 表示号数16 236.0
7127 週刊少年マガジン 1974年 表示号数42 236.0
7096 週刊少年マガジン 1974年 表示号数13 236.0
7094 週刊少年マガジン 1974年 表示号数11 236.0
2488 週刊少年ジャンプ 1974年 表示号数19 236.0
2487 週刊少年ジャンプ 1974年 表示号数18 236.0

最初の二つに関しては入力ミスが疑われます.降順にソートしてみます.

df_tmp.sort_values('numberOfPages', ascending=False).head(10)
miname numberOfPages
2109 週刊少年サンデー 2013年 表示号数36 600.0
8625 週刊少年マガジン 2005年 表示号数2 574.0
8580 週刊少年マガジン 2004年 表示号数22 573.0
8644 週刊少年マガジン 2005年 表示号数4 572.0
3981 週刊少年ジャンプ 2004年 表示号数37 572.0
8414 週刊少年マガジン 2000年 表示号数49 570.0
1872 週刊少年サンデー 2008年 表示号数4 568.0
2108 週刊少年サンデー 2013年 表示号数35 568.0
2107 週刊少年サンデー 2013年 表示号数34 566.0
1853 週刊少年サンデー 2008年 表示号数2 565.0

特別号の可能性があるので,妥当性の判断が難しいです.

いずれにしてもnumberOfPagesは欠測数が多いため積極的に分析に利用せず,後述するpageEndMaxで代用します.

df_tmp['numberOfPages'].isna().sum()
13

datePublished(発行日)#

datePublished(発行日)をdescribeで基礎集計します. 前述したようにdfを直接describeするとバイアスが乗るので,minameで中間集計したdf_tmpに対して分析を実施します.

df_tmp = df.groupby('miname')[['datePublished']].\
    first().reset_index()
# 日付処理を容易にするため,`pd.to_datetime`で型変換
df_tmp['datePublished'] = pd.to_datetime(df_tmp['datePublished'])
df_tmp['datePublished'].describe().reset_index()
index datePublished
0 count 9220
1 unique 6365
2 top 1983-01-01 00:00:00
3 freq 4
4 first 1970-07-27 00:00:00
5 last 2017-07-12 00:00:00

次に,年単位で集計してみます.

df_tmp['yearPublished'] = df_tmp['datePublished'].dt.year
df_tmp.value_counts('yearPublished').reset_index().\
    sort_values('yearPublished', ignore_index=True)
yearPublished 0
0 1970 86
1 1971 204
2 1972 204
3 1973 204
4 1974 199
5 1975 202
6 1976 200
7 1977 202
8 1978 202
9 1979 200
10 1980 200
11 1981 205
12 1982 201
13 1983 201
14 1984 201
15 1985 201
16 1986 200
17 1987 199
18 1988 203
19 1989 198
20 1990 199
21 1991 192
22 1992 193
23 1993 192
24 1994 192
25 1995 192
26 1996 192
27 1997 192
28 1998 192
29 1999 192
30 2000 193
31 2001 192
32 2002 192
33 2003 192
34 2004 192
35 2005 193
36 2006 192
37 2007 191
38 2008 192
39 2009 198
40 2010 194
41 2011 190
42 2012 193
43 2013 192
44 2014 192
45 2015 193
46 2016 194
47 2017 105

集計開始年(1970)および集計終了年(2017)以外は,年間およそ190-205回ほど発行していることがわかります.

price(雑誌価格)#

price(雑誌価格)をdescribeで基礎集計します. 前述したようにdfを直接describeするとバイアスが乗るので,minameで中間集計したdf_tmpに対して分析を実施します.

df_tmp = df.groupby('miname')[['price']].\
    first().reset_index()
df_tmp['price'].describe().reset_index()
index price
0 count 9218.000000
1 mean 195.055544
2 std 44.799162
3 min 80.000000
4 25% 170.000000
5 50% 200.000000
6 75% 229.000000
7 max 371.000000

一冊80円だった時代があったのでしょうか…?後ほど分析します.

publisher(出版社)#

publisher(出版社)に関して集計します. 前述したようにdfを直接集計するとバイアスが乗るので,minameで中間集計したdf_tmpに対して分析を実施します.

df_tmp = df.groupby('miname')[['mcname', 'publisher']].\
    first().reset_index()

雑誌ごとに出版社名を集計します.

df_tmp.groupby('mcname')['publisher'].\
    value_counts().reset_index(name='count')
mcname publisher count
0 週刊少年サンデー 小学館 ∥ ショウガクカン 1715
1 週刊少年サンデー 小学館 222
2 週刊少年サンデー 小学館 ∥ ショウガクカン,小学館 55
3 週刊少年ジャンプ 集英社 ∥ シュウエイシャ 1335
4 週刊少年ジャンプ 集英社 ∥ シュウエイシャ,集英社 383
5 週刊少年ジャンプ 集英社 378
6 週刊少年チャンピオン 秋田書店 ∥ アキタショテン 1623
7 週刊少年チャンピオン 秋田書店 ∥ アキタ ショテン 338
8 週刊少年チャンピオン 秋田書店 56
9 週刊少年チャンピオン 秋田書店 ∥ アキタショテン,秋田書店 ∥ アキタ ショテン 1
10 週刊少年マガジン 講談社 ∥ コウダンシャ 1808
11 週刊少年マガジン 講談社 217
12 週刊少年マガジン 講談社 ∥ コウダンシャ,講談社 68

かなり表記がぶれているようですが,今後積極的に使う情報ではないため,このままにしておきます.

editor(編集者)#

editor(編集者)に関して集計します. 前述したようにdfを直接集計するとバイアスが乗るので,minameで中間集計したdf_tmpに対して分析を実施します.

df_tmp = df.groupby('miname')[['mcname', 'editor']].\
    first().reset_index()
df_tmp.groupby('mcname')['editor'].value_counts().\
    reset_index(name='count')
mcname editor count
0 週刊少年サンデー 田中一喜 384
1 週刊少年サンデー 熊谷玄典 301
2 週刊少年サンデー 井上敬三 244
3 週刊少年サンデー 林正人 226
4 週刊少年サンデー 奥山豊彦 176
5 週刊少年サンデー 三上信一 156
6 週刊少年サンデー 猪俣光一郎 148
7 週刊少年サンデー 平山隆 145
8 週刊少年サンデー 縄田正樹 142
9 週刊少年サンデー 鳥光裕 127
10 週刊少年サンデー 市原武法 95
11 週刊少年サンデー 都築伸一郎 66
12 週刊少年サンデー 渡辺静夫 41
13 週刊少年サンデー 木下賀雄 7
14 週刊少年サンデー 三上伸一 1
15 週刊少年ジャンプ 西村繁男 403
16 週刊少年ジャンプ 後藤広喜 366
17 週刊少年ジャンプ 瓶子吉久 271
18 週刊少年ジャンプ 鳥嶋和彦 254
19 週刊少年ジャンプ 茨木政彦 247
20 週刊少年ジャンプ 中野祐介 201
21 週刊少年ジャンプ 長野規 187
22 週刊少年ジャンプ 佐々木尚 156
23 週刊少年ジャンプ 堀江信彦 118
24 週刊少年ジャンプ 高橋俊昌 75
25 週刊少年ジャンプ 鳥島和彦 3
26 週刊少年ジャンプ 後藤広喜 1
27 週刊少年ジャンプ 高校俊昌 1
28 週刊少年チャンピオン 壁村耐三 693
29 週刊少年チャンピオン 沢考史 537
30 週刊少年チャンピオン 大塚公平 354
31 週刊少年チャンピオン 岡本三司 250
32 週刊少年チャンピオン 樋口茂 184
33 週刊少年チャンピオン 神永悦也 109
34 週刊少年チャンピオン 成田清美 97
35 週刊少年チャンピオン 阿久津邦彦 66
36 週刊少年チャンピオン 武川新吾 6
37 週刊少年マガジン 五十嵐隆夫 525
38 週刊少年マガジン 三樹創作 411
39 週刊少年マガジン 森田浩章 409
40 週刊少年マガジン 宮原照夫 341
41 週刊少年マガジン 野内雅宏 288
42 週刊少年マガジン 菅原喜一郎 177
43 週刊少年マガジン 工富保 86
44 週刊少年マガジン 内田勝 46

誤記と思われるものがいくつかあります:

  • 週刊少年サンデー

    • 三上伸一さん(おそらく三上信一さん?)

  • 週刊少年ジャンプ

    • 鳥島和彦さん(おそらく鳥嶋和彦さん?)

    • 高校俊昌さん(おそらく高橋俊昌さん?)

数も少ないですし,確証が持てないため特に修正しないことにします.

pages(各話のページ数)#

pages(各話のページ数)をdescribeで基礎集計します.

df['pages'].describe().reset_index()
index pages
0 count 179931.000000
1 mean 18.526135
2 std 7.712730
3 min 1.000000
4 25% 17.000000
5 50% 19.000000
6 75% 20.000000
7 max 487.000000

四分位は納得感がありますが,最小・最大が想定外です.昇順で並び替えてみます.

df.sort_values('pages').head()
mcname miid miname cid cname epname creator pageStart pageEnd numberOfPages datePublished price publisher editor pages pageEndMax pageStartPosition
16949 週刊少年ジャンプ M544483 週刊少年ジャンプ 1976年 表示号数48 C89628 ミオとヒロシの週間パトロール 文化祭シーズン / トンガ力士廃業 斉藤ヒロシ 315.0 315.0 382.0 1976-11-29 170.0 集英社 中野祐介 1.0 375.0 0.840000
4908 週刊少年サンデー M579202 週刊少年サンデー 1972年 表示号数20 C92386 ウルトラ・ナンセンス劇場! ええかげんなエレベーターガール 辰野落児 202.0 202.0 286.0 1972-05-07 90.0 小学館 ∥ ショウガクカン 井上敬三 1.0 283.0 0.713781
12588 週刊少年ジャンプ M544565 週刊少年ジャンプ 1975年 表示号数16 C88775 鹿兵のケラケラ日記 どれがホンモノ?都民党 / 野球 南田鹿兵 244.0 244.0 268.0 1975-04-21 130.0 集英社 ∥ シュウエイシャ 中野祐介 1.0 262.0 0.931298
109575 週刊少年チャンピオン M556677 週刊少年チャンピオン 2002年 表示号数12 C95074 でじこの1ページ劇場 第42幕 コゲどんぼ 430.0 430.0 437.0 2002-02-28 210.0 秋田書店 ∥ アキタ ショテン 樋口茂 1.0 436.0 0.986239
118863 週刊少年ジャンプ M543111 週刊少年ジャンプ 2004年 表示号数20 C87612 BLEACH -17. 逸れゆく星々の為の前奏曲 久保帯人 2.5 2.5 416.0 2004-04-26 219.0 集英社 ∥ シュウエイシャ 茨木政彦 1.0 413.0 0.006053

週刊少年ジャンプ 2004年 表示号数20についてメディア芸術データベースで調べたところ,BLEACHは通常連載に加えて綴込み付録で-17. 逸れゆく星々の為の前奏曲を掲載したようです. pageStartおよびpageEndが中途半端な小数になっているのはそのためでしょう.

df.sort_values('pages', ascending=False).head()
mcname miid miname cid cname epname creator pageStart pageEnd numberOfPages datePublished price publisher editor pages pageEndMax pageStartPosition
172306 週刊少年ジャンプ M675741 週刊少年ジャンプ 2015年 表示号数48 C88060 磯部磯兵衛物語~浮世はつらいよ~ 第161話 御目出度いのに!で候 仲間りょう 3.0 489.0 498.0 2015-11-09 255.0 NaN 瓶子吉久 487.0 489.0 0.006135
92463 週刊少年サンデー M577883 週刊少年サンデー 1998年 表示号数14 C91730 アクシデンツ CASE83.ナギの島2 山田貴敏 7.0 461.0 474.0 1998-03-18 230.0 小学館 ∥ ショウガクカン 奥山豊彦 455.0 461.0 0.015184
76857 週刊少年マガジン M536262 週刊少年マガジン 1994年 表示号数24 C91844 宮田すすむと日本の社長! 社長登場! / 面接 / サイン 愛本ゆみ 3.0 394.0 428.0 1994-06-01 200.0 講談社 ∥ コウダンシャ 五十嵐隆夫 392.0 417.0 0.007194
171023 週刊少年サンデー M675826 週刊少年サンデー 2015年 表示号数35 C111084 アンペア 第9話 侵入者 山仲剛太 283.0 600.0 506.0 2015-07-29 270.0 NaN 市原武法 318.0 600.0 0.471667
111687 週刊少年マガジン M535852 週刊少年マガジン 2002年 表示号数36 C90219 RAVE RAVE:152 裸の英雄!? 真島ヒロ 39.0 272.0 508.0 2002-08-21 229.0 講談社 ∥ コウダンシャ,講談社 野内雅宏 234.0 495.0 0.078788

週刊少年ジャンプ 2015年 表示号数48についてメディア芸術データベースで調べたところ,磯部磯兵衛物語~浮世はつらいよ~は二周年記念で巻頭カラーをもらっていたようです.巻末の定位置での掲載はなかったことから,おそらくpageEndは誤入力と思われます.

pageEndMax(雑誌巻号の最大のpageEnd#

pageEndMax(雑誌巻号の最大のpageEnd)をdescribeで基礎集計します.なお,dfをそのままdescribeしてしまうと掲載作品数が多い雑誌巻号にバイアスのかかった統計量になってしまうため注意が必要です. そこで,ここではminameで中間集計したdf_tmpdescribeします.

df_tmp = df.groupby('miname')[
    ['pageEndMax']].first().reset_index()
df_tmp['pageEndMax'].describe().reset_index()
index pageEndMax
0 count 9220.000000
1 mean 392.943059
2 std 74.678356
3 min 200.000000
4 25% 326.000000
5 50% 410.000000
6 75% 451.000000
7 max 600.000000

pageStartPosition(各話の相対的な掲載位置)#

pageStartPosition(各話の相対的な掲載位置)について,describeで基礎集計します.

df['pageStartPosition'].describe().reset_index()
index pageStartPosition
0 count 179931.000000
1 mean 0.514837
2 std 0.283146
3 min 0.002045
4 25% 0.274840
5 50% 0.520588
6 75% 0.759626
7 max 1.000000

概ね想定通りの結果が出ましたが,最大値が1なのが少し気になるので,深堀りしてみます.

df[df['pageStartPosition']==1].\
    value_counts('cname').reset_index(name='counts')
cname counts
0 ハレハレまんが時評 56
1 少チャンまんが時評 51
2 少チャン時評 50
3 J連作 1コマギャグ 47
4 爆裂1コマ漫画 44
5 マンギリ 43
6 でじこの1ページ劇場 20
7 まんが時評 17
8 風と真理子の物語 13
9 わらしべSEED 7
10 [目次] 5
11 ルポ魂 3
12 ウルトラ・ナンセンス劇場! 3
13 SHINING FORCENE。 3
14 [プレゼント当選者発表] 3
15 予告大作戦 2
16 プロ野球エピソード 2
17 少年サンデーまんがカレッジ 2
18 マガジンシアター 2
19 鹿兵のケラケラ日記 2
20 さくらの詩 1
21 スター★素顔拝見 1
22 [編集後記] 1
23 [掲載に関するお知らせ] 1
24 つくしんぼう 1
25 今週のミニミニ対話 1
26 俺はぼろぼろ 1
27 又鬼の命 1
28 [懸賞] 1
29 MAJOR 1
30 ウルトラジャンプエッグのしずこちゃんとテラちゃん 1
31 月例フレッシュまんが賞 1
32 [インタビュー/対談/座談会] 1
33 ささみさん@がんばらない 1
34 ふたりと5人 1

ハレハレまんが時評は週刊少年チャンピオンの巻末の目次ページに掲載されていた4コマ漫画のようです(恥ずかしながら,知りませんでした).他のものに関しても同様でしょうか.