下面是代碼和控制臺輸出。
import pandas as pd
#data
df= pd.DataFrame([{'col1':'a', 'is_open':0}, {'col1':'b', 'is_open':1}])
#1
df = df.sort_values('is_open',ascending=False).reset_index(drop=True)
# print(df)
#2
for i, d in df.groupby(['col1', 'is_open']):
print(d)
col1 is_open
1 a 0
col1 is_open
0 b 1
我希望 is_open=1 首先列印出來,如下所示。
col1 is_open
0 b 1
col1 is_open
1 a 0
在分組之前對資料框進行排序不起作用。
任何幫助,將不勝感激。
uj5u.com熱心網友回復:
正如 Poiuy 所指出groupby的,將按分組鍵排序……但可以將其關閉。
df.groupby(['col1', 'is_open'], sort=False)
uj5u.com熱心網友回復:
您可能想要下面的代碼片段。Pandas groupBy 函式默認按組鍵排序,在這種情況下是第一列,然后是第二列。對值進行分組和聚合后,您可以對結果進行排序并遍歷資料框。
df = df.groupby(['col1', 'is_open']).apply(lambda x: x).sort_values('is_open',ascending=False)
https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.groupby.html
uj5u.com熱心網友回復:
下面為我??作業。謝謝你們。
import pandas as pd
#data
df= pd.DataFrame([{'col1':'a', 'is_open':0}, {'col1':'b', 'is_open':1}])
#1
# df = df.sort_values('is_open',ascending=False).reset_index(drop=True)
df = df.sort_values('is_open',ascending=True)
# print(df)
#2
for i, d in df.groupby(['col1', 'is_open'], sort=False):
print(d)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/494889.html
