数値,文字列を含むデータフレームから数値列のみを選択

Find the range of all columns (difference between maximum and minimum) while gracefully handling string columns – StackOverflow

pandas.DataFrame.select_dtypesを用いる事で,任意のdtype列を選択する事ができるらしい.数値列を選択したい場合は「np.number(’number’)」を指定すれば良い(To select all numeric types, use np.number or ‘number’).

import pandas as pd
import numpy as np
import seaborn as sns


iris = sns.load_dataset('iris')
print(iris.head())
v = iris.select_dtypes(include=[np.number])
print(v.head())
%timeit v.apply(np.ptp)
%timeit v.apply(lambda x: x.max()-x.min())
%timeit v.max() - v.min()

iris = pd.concat([iris]*100000, ignore_index=True)
v = iris.select_dtypes(include=[np.number])
%timeit v.apply(np.ptp)
%timeit v.apply(lambda x: x.max()-x.min())
%timeit v.max() - v.min()
1000 loops, best of 3: 621 µs per loop
1000 loops, best of 3: 643 µs per loop
1000 loops, best of 3: 298 µs per loop
1 loop, best of 3: 788 ms per loop
1 loop, best of 3: 852 ms per loop
1 loop, best of 3: 1.43 s per loop
カテゴリー: 未分類 パーマリンク

数値,文字列を含むデータフレームから数値列のみを選択 への1件のフィードバック

  1. ピンバック: DataFrameでグループ間の差と平均を計算(グループへの集約関数の適用) | 粉末@それは風のように (日記)

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください