2017-11-13 18 views
1

私はpandasが新しく、データフレームの行選択に問題があります。続きnullと一緒にpandasデータフレームから同じ行を選択する方法

は私DATAFRAMEです:

Index Column1 Column2 Column3  Column4 Column5 
    0 1234 500  NEWYORK  NY  NaN 
    1 5678 700  AUSTIN  TX  5678956010 
    2 1234 300  NEWYORKCITY NY  NaN 
    3 8910 235  RICHMOND  FL  8484883666 
    4 8910 250  AUSTIN  TX  8484883666 
    5 5324 150  AUSTIN  TX  NaN 

1)私はCOLUMN5に同じ値がある行を選択します。したがって、出力データフレームにはインデックス0,2,3および4のローが含まれている必要があります。カラム5のNaNを持つ2つのローは、Column1の値が同じ場合にのみ選択する必要があります(例:インデックス0および2のロー)。

このカスタム選択の手順を手伝ってもらえますか?事前のおかげで...

+0

私が試した[COLUMN5] .duplicate DF d(keep = False)&df [column5] .isnull()=他の組み合わせはほとんどありませんが、期待される出力が得られません。 –

+0

希望の出力を表示できますか? – zipa

+0

行 '4 'の' column1'が '89'を' 123'に変更した場合、 '0,2,3,4'行も返す必要がありますか? – jezrael

答えて

2

私はあなたが条件の2セット必要だと思う - |(または)によってColumn5NaN秒間、および非NaNは、最後のチェーン彼らのために:

m1 = df['Column1'].duplicated(keep=False) & df['Column5'].isnull() 
m2 = df['Column5'].duplicated(keep=False) & df['Column5'].notnull() 

df = df[m1 | m2] 
print (df) 
    Index Column1 Column2  Column3 Column4  Column5 
0  0  1234  500  NEWYORK  NY   NaN 
2  2  1234  300 NEWYORKCITY  NY   NaN 
3  3  8910  235  RICHMOND  FL 8.484884e+09 
4  4  8910  250  AUSTIN  TX 8.484884e+09 

詳細:

print (m1) 
0  True 
1 False 
2  True 
3 False 
4 False 
5 False 
dtype: bool 

print (m2) 
0 False 
1 False 
2 False 
3  True 
4  True 
5 False 
Name: Column5, dtype: bool 
+0

出力はあなたが印刷したものと同じです....しかし、同じことを試みたときには、インデックス5(行5にNaNもあります)の行が選択されています...列5のNaNは、column1の値が同じ場合にのみ選択する必要があります。このカスタム条件を提案できますか? –

+0

また、2つの行に同じ列5の値があり、それがnullではなく、そのcolumn1の値が異なる場合、それらの行も同様に選択したいと考えています。 –

+0

私のソリューションはそれのために働くと思います。 – jezrael

1

あなただけ使用することができます。

df[df.duplicated(['Column1', 'Column5'], keep=False) 
#Index Column1 Column2 Column3  Column4 Column5 
# 0 1234 500  NEWYORK  NY  NaN 
# 2 1234 300  NEWYORKCITY NY  NaN 
# 3 8910 235  RICHMOND  FL  8484883666 
# 4 8910 250  AUSTIN  TX  8484883666 
+0

私はこれを試してみました...もし私が同じColumn5値を持っているがColumn1の値が異なる行を選択したいのであれば、どうしたらいいですか?この場合、Column5のNaNとColumn1の異なる値 –

関連する問題