2017-12-14 11 views
0

次の列のデータフレームがあります。2つの条件に基づいた列を持つ新しいDataFrame

AA BB CC DD EE FF HH 

私は、列BBと列FFでソートするに"CT"を持っているすべての行を選択する必要があります。

私の人生のために、私はこれを行う方法を理解することができません。 非常にシンプルなようですが、私は何かを逃しています。

ご協力いただきまして誠にありがとうございます。

+2

をソートした後? – furas

答えて

1

これは動作するはずです:

df[df["BB"] == "CT"].sort_values(["FF"]) 
2

CTを持つ行を選択するには、それはすなわち、長い文字列のCTことができる場合は、

df[ df['BB'] == 'CT' ] 

を使用したりすることができます。 CTX

df[ df['BB'].str.contains('CT') ] 

そして、あなたは後に開始

AA BB CC DD EE FF HH 
0 1  1 1 1 0 1 
1 2 CT 2 2 2 1 2 
2 3  3 3 3 0 3 
3 4 CT 4 4 4 5 4 
4 5 CT 5 5 5 2 5 
5 6  6 6 6 0 6 
6 7  7 7 7 0 7 
7 8 CT 8 8 8 7 8 

でデータsort_values()

.sort_values('FF') 

全例

import pandas as pd 

data = { 
    'AA': [1, 2, 3, 4, 5, 6, 7, 8], 
    'BB': ["", "CT", "", "CT", "CT", "", "", "CT"], 
    'CC': [1, 2, 3, 4, 5, 6, 7, 8], 
    'DD': [1, 2, 3, 4, 5, 6, 7, 8], 
    'EE': [1, 2, 3, 4, 5, 6, 7, 8], 
    'FF': [0, 1, 0, 5, 2, 0, 0, 7], 
    'HH': [1, 2, 3, 4, 5, 6, 7, 8], 
} 

df = pd.DataFrame(data) 

print(df) 

print(df[ df['BB'] == 'CT' ]) 
print(df[ df['BB'] == 'CT' ].sort_values('FF')) 

を使用して、それを並べ替えることができます

AA BB CC DD EE FF HH 
1 2 CT 2 2 2 1 2 
3 4 CT 4 4 4 5 4 
4 5 CT 5 5 5 2 5 
7 8 CT 8 8 8 7 8 

あなたが何をしようとしなかった

AA BB CC DD EE FF HH 
1 2 CT 2 2 2 1 2 
4 5 CT 5 5 5 2 5 
3 4 CT 4 4 4 5 4 
7 8 CT 8 8 8 7 8 
関連する問題