

pandasを使い、0~0.9までの値を0.1刻みで取り出そうとしているのですが、  
なぜか0.6だけ取り出すことができません。  
0.6は存在することを確認しましたが、取り出すことができません。

[code]

    aa = pd.DataFrame()
    for i in range(10):
        aa = aa.append((b[b["Gate Voltage[V]"] == 0.100*i]))
    aa
    
[/code]

実行結果  
[![画像の説明をここに入力](https://i.stack.imgur.com/pVdGP.png)](https://i.stack.imgur.com/pVdGP.png)

bのデータフレーム内には0.6の値は格納されていますが、なぜか表示されません。

[![画像の説明をここに入力](https://i.stack.imgur.com/HRFLM.png)](https://i.stack.imgur.com/HRFLM.png)

0.6の列のコピです。

[code]

    0.600   1.898000e-10    -3.000000e-14   -1.894200e-10   3.010000e-12    2.200000e-12    0.0 forward 0.0 6.305648e+01    0.0 inf 10  10  rgb(133.0614857142856,87.03999999999999,220.16)
    
[/code]

* * *

追記

[code]

    aa = aa.append((b[b["Gate Voltage[V]"] == round(0.1*i,1)]))
    
[/code]

ご指摘の通りに実行しますと、0.7の時が表示されません。  
0.7も存在することを確認済みです。（追記前には見えていました）

[![画像の説明をここに入力](https://i.stack.imgur.com/WFSOz.png)](https://i.stack.imgur.com/WFSOz.png)

* * *

追記

[code]

    zzz = pd.DataFrame()
    b = df_resistor[0][df_resistor[0]["Body Resistance"] == a[0]]
    za = b[b["Gate Voltage[V]"] == 0.7]
    za
    zzz = zzz.append(za)
    za = b[b["Gate Voltage[V]"] == 0.9]
    zzz = zzz.append(za)
    za = b[b["Gate Voltage[V]"] == 0.8]
    zzz = zzz.append(za)
    zzz
    
[/code]

このプログラムを実行しても、0.7の時は表示されません。  
[![画像の説明をここに入力](https://i.stack.imgur.com/i57CH.png)](https://i.stack.imgur.com/i57CH.png)


CC BY-SA 4.0
2022-02-05T05:05:06.587
86156
2022-02-05T11:05:22.943
2022-02-05T11:05:22.943
3060
51187
question
python pandas
0.1 刻みのデータから特定の値だけが取り出せない


`0.100*i`では0.1刻みにならないと思います。

[code]

    aa = aa.append((b[b["Gate Voltage[V]"] == 0.100*i]))
    
[/code]

を

[code]

    aa = aa.append((b[round(b["Gate Voltage[V]"],1) == round(0.100*i,1)]))
    
[/code]

のように修正してはいかがでしょうか。


CC BY-SA 4.0
2022-02-05T05:36:48.160
86158
2022-02-05T10:25:53.700
2022-02-05T10:25:53.700
35558
35558
86156
answer

[code]

    aa = pd.DataFrame()
    for i in range(6, 11):
        aa = aa.append((b[(b["Gate Voltage[V]"]*1000).astype("int") == i*100]))
    # aaaa = aa.append((b[b["Gate Voltage[V]"] == round(0.1*i,1)]))
    aa
    
[/code]

とすることで上手く動きました。  
小数点が悪さをしていたようです。

metropolisさん、akira ejiriさん  
ありがとうございました。


CC BY-SA 4.0
2022-02-05T06:46:48.247
86160
2022-02-05T06:46:48.247
51187
86156
answer