pandas
daskでデータ絞り込みをするためにquery関数を使ったけど、構文が難しくてちょっと詰まった話。 daskのDataFrameに対するquery関数の公式ドキュメントはこちらだ。 dask.dataframe.DataFrame.query このドキュメントを見ると、 「pandasは@で変数名を使える…
pandasの時系列カラムの時刻を特定書式の文字列に変換する方法 最近、このような状況が発生した。 データ分析用にダミーの簡単なデータを作る必要がある そのデータは時刻カラムを含む 時刻カラムは、タイムゾーンが設定されていて、UTCである 実際のデータ…
pandasのappendができない? もとのDataFrameは変更されないので、返り値を使う pandasのappend関数を使うときに、たまに間違えて失敗するのでメモ。 pandasでDataFrameにappendするとき、連結後のDataFrameは返り値になっている。もとのDataFrameは変更され…
[pandas/matplotlib] 時系列データをプロットするときはデータ型に注意 pandasで時系列データを作って、matplotlibでプロットするときにエラーが出たけど、調べてみたらデータ型(dtype)を間違えていたせいだった。 時系列データのデータ型には気をつけまし…
今回の記事の主題は、 クラスタリングの結果(ラベル、番号)を、ある変数の値の順序に従って並び替えるにはどうすればよいか? という話である。 ……しかし、こう書いただけで何のことか分かる人は多分少ないだろう。だから順を追って説明していく。 まずは…
pandasのDataFrameのセル(1つのマス)にpythonのリスト(配列)を代入しようとして、苦労したのでやり方をまとめておく。 (pandasの公式ドキュメントではセルをcellとは呼ばず、valueもしくはscalar valueと呼んでいるようだ。) 注意 準備 失敗例 loc, il…
pandasを使ってDataFrameを結合しようとしたら、ValueError: len(left_on) must equal the number of levels in the index of "right" という見慣れないエラーが出てきた。 mergeを使うべきところでjoinを使ったのが原因だった。 以下のStackOverflowを見た…
「pandas float int 変換」で検索する人が結構いるので、まとめておきます。 準備 1列だけをfloatからintに変換する 複数列をfloatからintに変換する すべての列をfloatからintに変換する 文字列とかがある場合は? NaNを含む場合は? int型で欠損値をNaNのま…
ValueError: cannot reindex from a duplicate axis というエラーが、pandasにある。 エラーについて色々調べた結果、分からなかったこともあるけど、だいたい以下のとおりだろうか。 行もしくは列の名前に重複がある場合に、特定の操作で発生するようだ? 「…
pandasのDataFrameに、空の列を新しく追加(挿入)したい場合。 空の列の位置は気にしない場合(右端になる) どの値を入れれば良いの? 空の列を指定した位置に挿入したい場合 注意事項 参考 空の列の位置は気にしない場合(右端になる) 既存のDataFrameに1…
このブログを書くときには、jupyter notebookでサンプルのコードを書いて、pythonや各種ライブラリの動作を検証している。 そこでいつも頭を悩ませるのが、「jupyter notebookの上のサンプルコードを、どうやってはてなブログに貼り付けるか?」である。 毎回…
2万4000超の開発者に聞いた、Pythonでよく使うフレームワークは? | マイナビニュース https://www.jetbrains.com/lp/python-developers-survey-2019/ を読んで調べたこと。 Python Developers Survey 2019 Results Stack Overflow trend検索 Stack Overflow…
pandasのDataFrameやSeriesがあったときに、ある列の値に基づいて数値に変換して、ユニークな整数IDを振りたい時がある。文字列の型のカテゴリを番号に変換したいという状況だ。 1行ずつ見ていけばできることはできるのだが、もっと簡単に速くできる方法は無…
pandasで、 ValueError: Cannot set a frame with no defined index and a value that cannot be converted to a Series というエラーが出ることがある。 結論をいうと、これは空のDataFrameに対してapply()をしたときに発生するエラーである。 そうなら「エ…
pandasでDataFrameの最初(一番左)に列を追加・挿入する方法。 環境:pandasのversionは0.25.3です。 列名を指定して追加する方法だと末尾(最後、右端)に追加される 既存のDataFrameに1つの列を新規に追加する最も一般的な方法は、df['new_column'] = (追…
pandasのinfer_objects()は、数字の入った文字列('123')を数値(123)に変換しない、という話。 StackOverflowのURL: https://stackoverflow.com/questions/35003138/python-pandas-inferring-column-datatypes/48269724 のコメント infer_objects()は、D…
この記事は何?公式ドキュメントの(個人的な)翻訳だよ Essential basic functionality — pandas 1.4.1 documentation (2022年3月5日追記:pandas URLが変更されていてリンク切れになっていたので最新のURLに変えましたが、下記は1.0.3時点の公式ドキュメ…
環境 発生事象 仕組み、理由 同様の事象 iterrows 転置 関連 環境 python, pandas, jupyter のバージョン > python --version # Python 3.7.4 import pandas as pd pd.__version__ # '0.25.2' > jupyter notebook --version # 6.0.1 発生事象 データ分析中に…
pandasで、ある特定の列の値に応じてグループ化(集計・集約)し、特定の列の値ごとに最初の行(もしくは最後の行)を求めたいときの話。 基本的な例:グループごとに最初の行を選択する(first、nth、head) 基本的な例:グループごとに最後の行を選択する…
pandasを使っていて、ある関数の挙動を確認するのに、ちょろっとお試しのデータセットがあれば良いなぁ、と思うことがある。 俺も以前の記事で、pandasの使い方を説明するときに、自作のデータセットを使って書いていた。 [pandas]特定の条件を満たす行を…
この記事は、 SettingwithCopyWarning: How to Fix This Warning in Pandas – Dataquest の日本語訳です。3回にわたって掲載予定で、この記事は2回目です。 1回目の記事はこちら: linus-mk.hatenablog.com SettingWithCopyWarningを処理するためのヒントと…
この記事は、 SettingwithCopyWarning: How to Fix This Warning in Pandas – Dataquest の日本語訳です。3回にわたって掲載予定で、この記事は1回目です。 前書き 本編 はじめに SettingWithCopyWarningとは何か? 連鎖代入 隠れた連鎖 前書き pandasを書い…
DataFrameから、特定の条件を満たす行を削除する方法について。 例を挙げよう。 import pandas as pd df = pd.DataFrame({ 'name' : ['Alice', 'Bob', 'Charlie', 'David', 'Eve', 'Fred'], 'English' : [12, 34, 56, 78, -1, 90], 'Math' : [88, 66, -1, 44…