2016-07-06 6 views
1

編集:私の最初の質問は単なるVersionitisの問題でした。しかし、私の最初の質問に答えるの過程でいくつかの他の質問が対処されたので、私は質問を言い換え、以下、それらをリストアップしました:コールダンツによるパンダの選択

  1. 私はすなわちselection by callables、いくつかのパンダ能力で自分自身を習熟しています。ドキュメントはラムダ関数の使用を助言する。これを行うために、よりコンパクトで、ニシキヘビの方法は

    df1.loc[lambda df: df.A > 0, :] 
    

    あります:値> 0機能は「A」とデータフレームDF1のすべてのサンプルを抽出するには?

  2. ここで、df1がフィーチャAのデータフレームになっていますが、値が混合複線とトリプル(2と3タプル)であるとします。ダブルスだけを含むサンプルをどのように抽出できますか?私はこれをdf1.loc[len(df1.A)>2,:]としてやってみましたが、パンダが期待通りに値を放送していないことは明らかです。

+2

それは素敵な作品私にとっては。おそらく 'anaconda'や他のIDEを再起動してください。 – jezrael

+0

アップデートは本当ですか? pd .__ version__と入力して確認できますか? – ayhan

+0

私のマシンでは正常に動作します。私はパンダ0.18.1を使用しています。 –

答えて

1

IDEを再起動する必要があります。

あなたの別のquestionlen

使用apply

import pandas as pd 

data = {'A': [(1,2), (1,2), (1,2), (1,2), (1,2,4), (1,2,3)], 
     'B': [13, 98, 23, 45, 64, 10]} 

df = pd.DataFrame(data) 

print (df) 
      A B 
0  (1, 2) 13 
1  (1, 2) 98 
2  (1, 2) 23 
3  (1, 2) 45 
4 (1, 2, 4) 64 
5 (1, 2, 3) 10 

print (df[df.A.apply(len) >2]) 

      A B 
4 (1, 2, 4) 64 
5 (1, 2, 3) 10 
+0

パーフェクト、「適用」のヒントをありがとう! – itf

1

あなたは次のように、ラムダ関数せずにやりたいことができます。

df1.loc[df1.A>0,:] 

はおそらく、ドキュメントが古くなっています。

+0

ありがとう!ここでは、df1がフィーチャAを持つデータフレームになっていますが、値は2倍と3倍の2倍と3倍です。ダブルスだけを含むサンプルをどのように抽出できますか?私はこれをdf1.loc [len(df1.A)> 2 ::]としてやってみましたが、パンダが期待通りに値を放送していないことは明らかです。 – itf

関連する問題