質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

2回答

2260閲覧

小数点の数値を条件としたデータ抽出について

NoPython_Nolife

総合スコア49

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2017/12/26 08:55

編集2017/12/26 08:56

下記のようなデータフレーム:dfから少数点のみに条件をあてて
データを抽出する方法をご教示頂けると助かります。

abc
1.501.591.489
1.301.6045.50
1.002.501.987

たとえば小数点が0.50となっている
1.50,2.50,45.50のみ抽出できるイメージです。

よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

小数点部分を切り捨てれば整数部分が得られます。
さらにもとの数字から整数部分を差し引けば小数点部分が得られます。


https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.modf.html
numpy.modfという便利なものもあるらしいです。

投稿2017/12/26 13:00

編集2017/12/26 13:02
mkgrei

総合スコア8560

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

NoPython_Nolife

2017/12/27 06:16

ありがとうございます!大変助かりました!こういった方法があったんですね!
guest

0

ベストアンサー

numpy 1.13 以降であれば、numpy.divmod()が使えます。

https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.divmod.html

Python

1import pandas as pd 2import numpy as np 3 4df = pd.DataFrame([[1.50,1.59,1.489], [1.30,1.60,45.50], [1.00,2.50,1.987]]) 5 6# 1次配列で結果を得る 7data = df.values.flatten() 8print(data[np.divmod(data,1)[1] == 0.5]) 9# [ 1.5 45.5 2.5] 10 11# DataFrameにて結果を得る 12print(df[df.apply(lambda d: np.divmod(d,1)[1] == 0.5)]) 13# 0 1 2 14# 0 1.5 NaN NaN 15# 1 NaN NaN 45.5 16# 2 NaN 2.5 NaN

投稿2017/12/26 15:29

magichan

総合スコア15898

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

NoPython_Nolife

2017/12/27 06:16

ありがとうございます。まさに求めていた内容です!ただ、0.45や0.95などの値だと極小数な値(0.45だと0.4500000002みたいな)となってしまいます。これを回避する方法はありますでしょうか?
mkgrei

2017/12/27 07:03

例えば、 lambda d: np.isclose(np.divmod(d,1)[1], 0.5)) のように。
NoPython_Nolife

2018/01/05 07:54

御礼が送れてしまい申し訳ありません。ご丁寧な回答ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問