Stack Overflow for Teams is now called Stack Internal. Bring the best of human thought and AI automation together at your work. Try for free Learn more
グループ分けした処理の概要 groupby関数を使ってデータをグループ分けする(Splitting) 列データからグループ分け 複数の列データから作成 Indexの値を使う MultiIndexでグループ分け GroupByオブジェクトの中身を確認する GroupByオブジェクトをイテレータとして扱う 特定の列データを指定する グループごとに処理を実行する(Applying) Pandasの組み込み関数を使う apply関数を使って適用させる 複数の関数を一度に適用させる 列ごとに処理を指定する transform関数を使ったデータ整形 フィルタリング グラフにプロットする まとめ 参考 Pandasでの代表的な機能の1つとしてgroupby関数があります。 これはデータをある列データなどを基準にグルーピングして処理を行うために使います。例えば、事業部ごとの売上や、年代別での成績などを算出
''' nonG.py purpose: delete G row in ALT column ''' import os import pandas as pd import argparse import sys def main(): # make parser parser = argparse.ArgumentParser() # add argument parser.add_argument('input') parser.add_argument('output') # analize arguments args = parser.parse_args() # set input filename and the number of vcf header inputfile = args.input print(inputfile) # if inputfile does
まずはデータフレームDataFrame。 In [16]: df = pd.DataFrame([(1,2,3),(4,np.nan,7),(np.nan,9,10)]) In [17]: df Out[17]: 0 1 2 0 1 2 3 1 4 NaN 7 2 NaN 9 10 欠損値np.nanを全部除く。 欠損値が1つでもある行Rowを除く。 In [18]: df.dropna() Out[18]: 0 1 2 0 1 2 3 欠損値を含む列Columnを除く In [20]: df.dropna(axis=1) Out[20]: 2 0 3 1 7 2 10 column[0]で欠損値を含む行を除く In [21]: df.dropna(subset=[0]) Out[21]: 0 1 2 0 1 2 3 1 4 NaN 7 データフレームに行名index、列名columns追
プラグイン管理にdein.vimを利用してjedi-vimを入れて使っているのだが、pandasの自動補完が遅くて辛かったので設定を変更。 import pandas as pd pd.上記のようにピリオドを入力したときに自動で補完が働くのだが、候補が出てくるのが妙に遅く、ピリオドを打つたびに入力できない状態で待たされて手が止まってしまう。これをどうにかしたい。 あとついでに候補選択時に説明ウィンドウが表示されるのも煩わしいので消したい。 devidhalter/jedi-vimのREADMEを参考にして dein-vimの設定ファイルdein_lazy.tomlを適当にいじる。 github.com 変更前。ただインストールしただけの状態。 dein_lazy.toml [[plugins]] repo = 'devidhalter/jedi-vim' ob_ft = 'python'変
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, 22, -1] }) df # -> name English Math 0 Alice 12 88 1 Bob 34 66 2 Charlie 56 -1 3 David 78 44 4 Eve -1 22 5 Fred 90 -1 上記の通り、生徒と試験の点数が表(DataFrame)になっているとしよう。 試験を欠席した人は点数が-1になっている、としよう。 Mathの得点
本記事のサンプルコードのpandasのバージョンは以下の通り。バージョンによって仕様が異なる可能性があるので注意。例として以下のデータを使用する。重複した行を追加している。 sample_pandas_normal.csv import pandas as pd print(pd.__version__) # 2.1.4 df = pd.read_csv('data/src/sample_pandas_normal.csv') df.loc[6] = ['Dave', 68, 'TX', 70] print(df) # name age state point # 0 Alice 24 NY 64 # 1 Bob 42 CA 92 # 2 Charlie 18 CA 70 # 3 Dave 68 TX 70 # 4 Ellen 24 CA 88 # 5 Frank 30 NY 57 # 6
Fifteen years ago, there were only a few skills a software developer would need to know well, and he or she would have a decent shot at 95% of the listed job positions. Those skills were: Object-oriented programming.Scripting languages.JavaScript, and…SQL.SQL was a go-to tool when you needed to get a quick-and-dirty look at some data, and draw preliminary conclusions that might, eventually, lead t
小さなファイルのETLにGlueを使うのがもったいなかったので、Pandasやpyarrowで実装しました。 Lambda Layerにpandasとpyarrowを追加 Layerに登録するパッケージを作成 パッケージをアップロード Lambdaのコード エラー対応 参考 Lambda Layerにpandasとpyarrowを追加 Layerに登録するパッケージを作成 今回利用するのはpandasとpyarrow、s3fsなのですが少し工夫が必要でした。 3つを全てを一つのZIPに纏めるとLambda Layerの50MBの制限にかかってしまいます。 3つにZIPを分割するとLambdaにレイヤー追加する時の制限にかかってしまいます。 Layers consume more than the available size of 262144000 bytes 大きなnumpyなどを共有
PySpark is a really powerful tool, because it enables writing Python code that can scale from a single machine to a large cluster. While libraries such as MLlib provide good coverage of the standard tasks that a data scientists may want to perform in this environment, there’s a breadth of functionality provided by Python libraries that is not set up to work in this distributed environment. While l
はじめに この記事ではQiita APIおよびScrapyによるクローリング、スクレイピングによってQiitaの記事データ(タイトル、「いいね」数、投稿日時など)を取得しCSVファイルとして保存する方法を紹介する。 基本的にはQiita APIを使うべきだが、「ストック」数ランキングに限ってはスクレイピングで取得するほうが簡単。 以降のQiita APIやQiitaのサイトについての記述はすべて2018年8月15日時点の仕様。 収集したデータの分析については以下。 Python, pandasによるデータ分析の実践 (Qiita記事データ編) ※普段は自分のサイトに書いているのですが、Qiitaのデータを使わせてもらった内容はQiitaに書くのが筋だろうと思いこちらに書くことにしました。 「いいね」と「ストック」 Qiitaには「いいね」と「ストック」がある。 もともとは「ストック」だけだ
時系列データを扱うにあたって役に立った、Pandasのテクニックを紹介します。 文字列型のSeriesから日時型・日付型のSeriesへ変換する 日付に欠測値を含むデータを日毎に集計する 累積和を計算する 今回の例に使う時系列データは以下です。 ある商品の4/1〜4/3の購入履歴をイメージしてください。ユーザ(user_id)の購入日時(timestamp)と購入数(item_count)が入ったDataFrameとなっています。 import pandas as pd df = pd.DataFrame(...) print(df.info()) # <class 'pandas.core.frame.DataFrame'> # RangeIndex: 5 entries, 0 to 4 # Data columns (total 3 columns): # timestamp 5 no
はじめに pandasやnumpyとかを使ってデータ分析のようなことをしてると、実行結果が数値だったりしてバグに気づきづらい。結果がおかしいことに気づかないまま論文を書いてしまうのは怖いのでユニットテストを書いておく。 普段、Pythonによるデータ分析入門 ―NumPy、pandasを使ったデータ処理を読みながら勉強してたんだけどこの本にはテストについて書かれていなかったのでネットで調べてみた。(この辺の内容について書かれた記事が少ない気がしたんだけど、この分野ではあんまりテスト書かれてないのかな?) Pandasのデータ構造 pandasでは以下の様な便利なデータ構造が提供されている。 Series 1次元配列のようなオブジェクト DataFrame テーブル形式のデータ構造。 Panel 3次元のデータフレームに相当するデータ構造。 Assertion method pandas.u
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く