私はこのようなデータフレームを持っています:
import pandas as pd
dic = {'A':[100,200,250,300],
'B':['ci','ci','po','pa'],
'C':['s','t','p','w']}
df = pd.DataFrame(dic)
私の目標は、2つのデータフレームで行を分離することです。
B
(一意の行)に沿って値を繰り返さないすべての行が含まれます。結果は次のようになります。
df1 = A B C df2 = A B C
0 250 po p 0 100 ci s
1 300 pa w 1 250 ci t
注意:
Series.duplicated
パラメータkeep=False
すべての重複のマスクを作成してから boolean indexing
、~
mask
を反転するには:
mask = df.B.duplicated(keep=False)
print (mask)
0 True
1 True
2 False
3 False
Name: B, dtype: bool
print (df[mask])
A B C
0 100 ci s
1 200 ci t
print (df[~mask])
A B C
2 250 po p
3 300 pa w