Information 2024/1/8: pandas , Polars など18を超えるライブラリを統一記法で扱える統合データ処理ライブラリ Ibis の100 本ノックを作成しました。長期目線でとてもメリットのあるライブラリです。こちらも興味があればご覧下さい。 Ibis 100 本ノック https://qiita.com/kunishou/items/e0244aa2194af8a1fee9 はじめに どうもこんにちは、kunishouです。 この度、PythonライブラリであるPolarsを効率的に学ぶためのコンテンツとして 「Python初学者のためのPolars100本ノック」 を作成したので公開します。こちらは2020年9月に公開した「Python初学者のためのpandas100本ノック」の問題内容をPolarsのメソッドに合わせて修正、再編したものになります。本コンテン
PolarsというPandasを100倍くらい高性能にしたライブラリがとても良いので布教します1。PolarsはRustベースのDataFrameライブラリですが、本記事ではPythonでのそれについて語ります。 ちなみにpolarsは白熊の意です。そりゃあまあ、白熊と大熊猫比べたら白熊のほうが速いし強いよねってことです2。 何がいいの? 推しポイントは3つあります 高速! お手軽! 書きやすい! 1. 高速 画像はTPCHのBenchmark(紫がPolars)3。 日本語でも色々記事があるので割愛しますが、RustやApach Arrowなどにお世話になっており、非常に速いです。MemoryErrorに悩まされる問題も解決されます。開発者のRitchieがしゃれおつなツイートをしてるので、そちらも参考にどうぞ ↓ 4。 抄訳: (ひとつ目)Pandasは黄色くした部分でDataFram
何故やったか pandas.DataFrameに1行ずつデータを書き出して行く処理を書いていたんですが、10万行ほど書き出すと結構遅くなっちゃいました。今後行数が増える予定なので、これを期にどう書くと早くなるか確認しておく事にしました。 やったこと pandas.DataFrame.iloc[i, j] = hoge で1つずつ記入 pandas.DataFrame.append(hoge) で1行まとめて追加 pandas.DataFrame.iloc[i,:] = hoge で1行まとめて追加 1列ずつリストで作ってDataFrameに変換する※ ※ 2018.11/12 kishiyamaさんに教えて頂いたやり方を追記 試した環境 windows10 64bit cpu: Ryzen7 1700X gpu: GTX1080Ti python3.6 jupyter 1.0.0 jupy
Timestampクラス TimestampクラスのAPIドキュメント params: Timestampクラスオブジェクトの生成 直接生成 to_datetime関数を使った生成 date_range関数を使った連続した時刻データの生成 Timestampオブジェクトから情報取得 タイムゾーンの指定 offsetsオブジェクトを使った加減 日付データの差をとる まとめ 参考 Python上で時系列データを扱う際はdatetimeモジュールを使うのが基本です。 例えばですが、現在時刻を取得したい時は以下のように書きます。 In [1]: import datetime In [2]: time = datetime.datetime.now() In [3]: time Out[3]: datetime.datetime(2018, 9, 21, 10, 29, 17, 681135) こ
TL;DR Python pandas の DataFrame を使っていると、いつもどうでもいい感じな初歩的なところではまります。 (わたしだけ...?) このあたりの Tips がまとまっている素晴らしいサイトも多いのですが、なぜか、うまーい具合にわたしがやりたいことにピッタリはまらないことが多いので半分自分用にまとめておきました。 蛇足的な考察ですが、pandas DataFrame は、データ指向のデータ屋さんが使いやすいように作られているからかな、と思います。 わたしみたいなオブジェクト指向(≒機能指向)よりなプログラマだと、そもそもの発想がロジックよりになるためそれが原因で使いづらいことが多い気がします。 ということで、どちらかというと、わたしみたいなプログラマよりのTipsになります。 データ屋さんとプログラマの考え方の違い 例 データ屋さんは、SQL の inner/out
まずは、それぞれのデータ型でどのような表記がされるのかを確かめてみましょう。NumPyのndarrayのdtypeは、arr.dtypeのようにして知ることができます。 In [1]: import numpy as np In [2]: a = np.array([0, 1, 2]) # まずは何も指定しない状態で配列を生成。 In [3]: a.dtype # データ型を確かめる。 Out[3]: dtype('int64') In [4]: b = np.array([0, 1, 2], dtype = 'int32') # ビット数を下げてみる。 In [5]: b.dtype Out[5]: dtype('int32') In [6]: b Out[6]: array([0, 1, 2], dtype=int32) In [7]: c = np.array([0, 1, 2],
自分は、1年前からPythonを使い始めました。Pandasを始めとするPythonのデータサイエンス用のライブラリーは便利です。 つい最近、マイクロソフトがExcelにPythonを搭載することを検討しているというニュースが流れました。VBAとは長い付き合いなので、前半でVBAよりPandasが数倍便利だということを書いて、後半でExcelにPythonを搭載されることへのコメントを書くことにします。自分は、ExcelはデータのためのGUIツールとしては便利で役に立つツールだと思っています。ただ、VBAの方が長年放置されていて最近の言語としては落第なのでPythonが搭載されることを期待したいと思っています。急遽テーマを変更したので、時間がなくて以下は「Excel VBA Advent Calendar 2017 20日目」の記事と同じにしてしまいました。 「ExcelにPythonが搭
行数、要素数 行数(レコード数) 行数を出力する場合はlen関数を使用します。また、sizeメソッドを使用すると要素数を取得することができます。 import pandas as pd df = pd.DataFrame([[1, 10], [2, 20], [3, 30]], columns=['col1', 'col2']) # col1 col2 # 0 1 10 # 1 2 20 # 2 3 30 len(df) # 3 上のサンプルでは2列3行のDataFrameの行の長さをlenで取得しています。 要素数 sizeプロパティで要素数を取得することができます。 # 上のサンプル続き df.size # 6 DataFrameのメソッドを使用して、列ごとの基本統計量を取得することができます。 平均、最大最小、標準偏差、分散など df.count() 要素数 # col1 3 # c
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く