-
PythonでDataFrame内のうるう年(閏年)の総数をカウントする方法
はじめにpandasのDataFrameに格納された「年」と「日数」のデータから、うるう年(閏年)が何回現れるかをカウントする方法を解説します。条件式によるフィルタリングとlen()関数を組み合わせることで、シンプルに実装できます。入力データ以下のようなDataFrameを想定します。 year days 0 2002 365 1 2004 366 2 2012 366 3 2018 365 4 2020 366この中で、2004年・2012年・2020年の3つがうるう年に該当します。期待される出力Count the number of leap years are:
-
PythonでDataFrameの指定列に基づいてレコード数をカウントする方法
データ分析の現場では、特定の列(カテゴリ)ごとにレコード数を集計する処理がよく求められます。Pythonのpandasライブラリを使えば、groupby()メソッドを活用することで、このような集計を簡単に実現できます。 実現したいこと 例として、「Designation(役職・職種)」列を基準にレコードをグループ化し、それぞれの件数をカウントします。最終的な出力は以下のようになります。 Designation architect 1 programmer 2 scientist 2 解決のアプローチ この問題を解決するためには、以下の手順で進めます。 DataFrame
-
PythonでSeries内の全要素のデフォルトの分位数(クォンタイル)を計算する方法
pandasのSeriesオブジェクトに対して、デフォルトの浮動小数点型の分位数を計算するPythonプログラムの作成方法を解説します。入力以下のようなSeriesデータがあると仮定します。分位数のデフォルト値は 0.5(中央値)です。value is 3.0解決手順この問題を解くために、以下の手順に従います。まず、リストからpandasのSeriesを定義します。次に、quantile() メソッドを使って、デフォルト値である 0.5 を引数として指定し、分位数を計算します。data.quantile(.5)実装例理解を深めるために、完全な実装コードを見てみましょう。import panda
-
【Python・pandas】入力値が3と5の両方で割り切れる場合にDataFrameの最初の列をシフトし、欠損値を埋める方法
問題の概要 pandasのDataFrameに対して、「ユーザーから入力された値が3と5の両方で割り切れる場合のみ、最初の列を横方向に1つシフトし、シフトによって生じた欠損値(NaN)をその入力値で埋める」という処理を実装する方法を解説します。 入出力のイメージは次のとおりです。 one two three 0 1 10 100 1 2 20 200 2 3 30 300 値を入力してください: 15 one two three 0 15 1 10 1 15 2 20 2 15 3 30 入力値「15」は3でも5でも割り切れるため、シフト後に空いた先頭列
-
PythonでDataFrameのインデックスと列を転置(入れ替え)する3つの方法
はじめにpandasのDataFrameでは、行と列を入れ替える「転置(transpose)」操作がよく使われます。本記事では、特定のDataFrameのインデックスと列を転置するための3つの方法を、具体的なコード例とともにわかりやすく解説します。たとえば、次のような元のDataFrameがあるとします。import pandas as pd data = [[1,2,3],[4,5,6]] df = pd.DataFrame(data) print(元のDataFrame:\n, df)出力結果:元のDataFrame: 0 1 2 0 1 2 3 1 4 5 6このDataFrame
-
PandasのSeriesに対してブール論理演算(AND・OR・XOR)を実行するPythonプログラムの作成方法
pandasのSeries(系列)を扱う際、各要素に対してブール論理演算(AND・OR・排他的論理和)を適用したいケースはよくあります。本記事では、&(AND)、|(OR)、^(XOR)の各演算子を使って、Series全体に一括でブール演算を実行するPythonプログラムを解説します。 まず、今回作成するプログラムの出力結果を確認しておきましょう。 And operation is: 0 True 1 True 2 False dtype: bool Or operation is: 0 True 1 True 2 True dtyp
-
PythonでSQLデータベースからサンプルデータを読み取る方法
本記事では、Pythonを使ってSQLデータベース(SQLite3)に保存されたサンプルデータを読み取り、表示する方法を解説します。前提条件学生のレコードが保存されたsqlite3データベースがあると仮定します。すべてのデータを読み取ると、結果は以下のようになります。 Id Name 0 1 stud1 1 2 stud2 2 3 stud3 3 4 stud4 4 5 stud5解決手順この問題を解決するには、以下の手順に従います。まず、新しいデータベース接続を定義します。コードは以下の通りです。con = sqlite3.connect(db.sqlite3)次に、以下の関数を
-
PythonでDataFrameの最小値を求めて新しい行・列に格納する方法
データ分析では、DataFrame内の数値データから最小値を抽出し、それを集計結果として表に追加したいケースがよくあります。この記事では、Pandasを使って各行・各列の最小値を計算し、それぞれ新しい列と行として格納する方法を解説します。 前提となるDataFrame まず、次のようなDataFrameがあると仮定します。 one two three 0 12 13 5 1 10 6 4 2 16 18 20 3 11 15 58 各行の最小値を新しい列に、各列の最小値を新しい行に格納すると、最終的な結果は以下のよ
-
PythonでDataFrameの対角要素を1に置き換える方法を解説
はじめにPandasのDataFrameを扱う際、対角成分(対角線上の要素)だけを特定の値に置き換えたいケースはよくあります。本記事では、3×3のDataFrameの対角要素をすべて「1」に変更するプログラムをPythonで実装する方法を解説します。例として、次のようなDataFrameを想定します。 0 1 2 0 10 20 30 1 40 50 60 2 70 80 90このDataFrameの対角要素を1に置き換えると、結果は以下のようになります。 0 1 2 0 1 20 30 1 40 1 60 2 70 80
-
Pythonでランダムな10行×2列の母音データを生成し、一致するインデックスとカウントを出力する方法
この記事では、PythonのPandasとNumPyを使って、ランダムな10行・2列の母音(a、e、i、o、u)からなるデータフレームを生成し、各行で2つの列が同じ母音と一致した場合に、そのインデックスと一致件数を出力する方法を解説します。想定するデータフレームまず、以下のようなデータフレームが存在すると仮定します。 col1 col2 0 o e 1 e e 2 i u 3 e o 4 i i 5 u o 6 e
-
【Python】共通の列の値に基づいて2つのデータフレームをマージする方法
ここでは、次のような2つのデータフレームが存在すると仮定して説明します。first dataframe is id country 0 1 India 1 2 UK 2 3 US 3 4 China second dataframe is id City 0 1 Chennai 1 11 Cambridge 2 22 Chicago 3 4 Chengdu共通の列「id」に基づいてマージを実行すると、結果は以下のようになります。Merging data based on same column - id id country City 0 1 India Chennai 1 4 Ch
-
【Python】PandasのDataFrameからランダムな奇数インデックスの行を選択する方法
この記事では、PandasのDataFrameからランダムな奇数インデックスの行を1つ選択して表示するPythonプログラムを紹介します。前提となるデータフレームまず、次のようなデータフレームが存在すると仮定します。DataFrame is: id mark age 0 1 70 12 1 2 60 13 2 3 40 12 3 4 50 13 4 5 80 12 5 6 90 13 6 7 60 12このデータフレームに対して処理を実行すると、ランダムな奇数インデックスの行は以下のように出力されます。Random odd index row is: id
-
PythonでSeries内の最も繰り返される要素(最頻値)を見つける方法
データ分析を行っていると、pandasのSeriesの中で「どの要素が最も多く繰り返されているか」を調べたい場面によく出会います。例えば、次のようなSeriesがあると仮定しましょう。 Series is: 0 1 1 22 2 3 3 4 4 22 5 5 6 22 このSeriesに対して最も繰り返される要素を求めると、結果は以下のようになります。 Repeated element is: 22 解決のためのアプローチ この問題は、以下の手順で解決できます。 リストからpandasのSeriesを定義します。 最大出現回数を記録する
-
PythonでDataFrameから特定の列(1列または複数列)を削除する3つの方法
pandasのDataFrameを扱っていると、不要になった列を削除したい場面はよくあります。本記事では、PythonでDataFrameから1つの列、あるいは複数の列を削除するための3つの代表的な方法を、サンプルコード付きでわかりやすく解説します。前提:対象となるDataFrameまず、以下のようなDataFrameを例として使用します。 one two three 0 1 2 3 1 4 5 6このDataFrameに対して、「one」列を1つだけ削除すると、結果は
-
PythonでPandasデータフレームの最後の2行を入れ替える方法
Pandasのデータフレームを扱う際、行の順序を入れ替えたいケースはよくあります。ここでは、データフレームの最後の2行を入れ替える方法を解説します。 実行結果のイメージ 例として、以下のような学生の成績データを持つデータフレームを用意し、最後の2行(AlexとSerina)を入れ替えます。 Before swapping Name Age Maths Science English 0 David 13 98 75 79 1 Adam 12 59 96 45 2 Bob 12 66 55
-
【Python】pandasでデータフレーム内の特定の列のデータ型を変換する方法
はじめにpandasでデータフレームを扱っていると、「float型の列をint型に変換したい」という場面によく出会います。例えば、成績データの平均値(小数点あり)を整数として扱いたい場合などがその一例です。この記事では、astype()メソッドを使って、データフレーム内の特定の列のデータ型を変換する方法を、具体的なサンプルコードとともに解説します。変換前後のイメージfloat型からint型へ変換すると、データフレームの各列の型は次のように変わります。【変換前】 Name object Age int64 Maths int64 Science int64
-
Pythonでpandas Seriesの全要素をシャッフルする方法を解説
はじめにデータ分析を行っていると、Series(シリーズ)内の要素の順序をランダムに入れ替えたい場面があります。例えば、データセットをランダム化してバイアスを排除したり、サンプリングの前処理としてシャッフルを行ったりするケースです。本記事では、元のSeriesとシャッフル後のSeriesの出力例をもとに、2つの実装方法をわかりやすく解説します。元のSeries: 0 1 1 2 2 3 3 4 4 5 dtype: int64 シャッフル後のSeries: 0 2 1 1 2 3 3 5 4 4 dtype: int64方法1:ra
-
PythonでSeriesからアームストロング数を抽出・フィルタリングする方法
pandasのSeries(系列)データの中からアームストロング数だけを抽出してフィルタリングする方法を解説します。今回扱う元のSeriesと、フィルタリング後の出力結果は以下の通りです。 元のSeries: 0 153 1 323 2 371 3 420 4 500 dtype: int64 アームストロング数: 0 153 2 371 dtype: int64 アームストロング数とは? アームストロング数とは、各桁の数字を3乗した値の合計が、元の数値そのものと一致する数のことです。たとえば 153 の場合、1³ + 5³ + 3³ = 1 + 1
-
Pythonで文字列内のアルファベットと数字を分離してデータフレームに変換する方法
pandasのSeriesオブジェクトに含まれる文字列から、アルファベット部分と数字部分をそれぞれ分離し、それらをデータフレームとして格納する方法を解説します。目標となる出力たとえば、以下のようなSeriesがあるとします。この中の各要素を、アルファベット部分と数字部分に分けてデータフレーム化するのが目的です。series is: 0 abx123 1 bcd25 2 cxy30 dtype: object Dataframe is: 0 1 0 abx 123 1 bcd 25 2 cxy 30解決のアプローチこの問題を解決するには、以下の
-
Pythonでデータフレームを複数シートのExcelファイルにエクスポートする方法
データ分析の現場では、1つのExcelファイルの中に複数のシートとしてデータフレームを保存したい場面がよくあります。例えば、同じデータフレームを「first_sheet」「second_sheet」「third_sheet」という3つのシートに分けて出力するケースを想定してみましょう。この記事では、pandasとxlsxwriterを組み合わせて、データフレームを複数シートのExcelファイルに書き出す手順をわかりやすく解説します。解決手順xlsxwriterモジュールをインポートし、Excelへの変換に使用できるようにしますデータフレームを定義して、変数dfに代入しますpd.ExcelWri