[英]Sort column of booleans in Pandas DataFrame
您需要指定列名稱:
>>> import pandas as pd
>>> import numpy as np
>>> np.random.seed(123)
>>> idx = pd.date_range('2018-10-05', periods=7, freq='D')
>>> df = pd.DataFrame({'data': np.random.randn(idx.size),
... '50+': np.random.choice([0, 1], size=idx.size).astype(bool)},
... index=idx)
>>> df
data 50+
2018-10-05 -1.085631 True
2018-10-06 0.997345 True
2018-10-07 0.282978 False
2018-10-08 -1.506295 False
2018-10-09 -0.578600 False
2018-10-10 1.651437 True
2018-10-11 -2.426679 False
>>> df.sort_values('50+')
data 50+
2018-10-07 0.282978 False
2018-10-08 -1.506295 False
2018-10-09 -0.578600 False
2018-10-11 -2.426679 False
2018-10-05 -1.085631 True
2018-10-06 0.997345 True
2018-10-10 1.651437 True
>>> df.sort_values('50+', ascending=False)
data 50+
2018-10-05 -1.085631 True
2018-10-06 0.997345 True
2018-10-10 1.651437 True
2018-10-07 0.282978 False
2018-10-08 -1.506295 False
2018-10-09 -0.578600 False
2018-10-11 -2.426679 False
如果不確定,可以隨時檢查docstring 。
默認值為ascending=True
,它將把False
放在第一位,因為它們在底層僅是0。 (雖然True
為1。)
如果您想過濾到該列為True的行,則可以使用:
>>> df[df['50+']]
data 50+
2018-10-05 -1.085631 True
2018-10-06 0.997345 True
2018-10-10 1.651437 True
我想查找與布爾值True鏈接的日期。
您無需為此進行任何排序。 您只需要使用布爾索引即可; 換句話說,構造一個長度與數據幀索引相同的布爾系列或數組,然后通過__getitem__
應用它,該語法由語法[]
調用。
因此, pd.DataFrame
“將布爾值分配給pd.DataFrame
”, pd.DataFrame
對索引建立索引 !
index_filtered = df.index[df['50+']]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.