嗨,我有一個資料框,我必須在其中修復列的順序。我有一個串列,其中定義了列名的前綴。我已經根據那個串列修復了。
例子:
df 列:-
nOffered_count, nOffered_sum, nTransferred_count, nTransferred_sum, tacd_count, tacd_sum, tacw_count, tacw_sum, tHeld_count, tHeld_sum
我有一份清單——
list = ['nOffered', 'tacw', 'tacd', 'nTransferred', 'tHeld']
結果我想在資料框中按以下順序:
nOffered_count, nOffered_sum, tacw_count, tacw_sum, tacd_count, tacd_sum, nTransferred_count, nTransferred_sum, , tHeld_count, tHeld_sum
uj5u.com熱心網友回復:
創建字典以在列舉中排序,然后_通過映射此字典對值進行排序:
L = ['nOffered', 'tacw', 'tacd', 'nTransferred', 'tHeld']
d = {v: k for k, v in dict(enumerate(L)).items()}
cols = sorted(df.columns, key = lambda x: d.get(x.split('_')[0], ''))
print(cols)
['nOffered_count', 'nOffered_sum', 'tacw_count', 'tacw_sum',
'tacd_count', 'tacd_sum', 'nTransferred_count', 'nTransferred_sum',
'tHeld_count', 'tHeld_sum']
上次更改訂單DataFrame:
df = df[cols]
另一個想法:
df = df.sort_index(key = lambda x: x.str.split('_').str[0].map(d).fillna(''), axis=1)
print(df)
Empty DataFrame
Columns: [nOffered_count, nOffered_sum, tacw_count, tacw_sum,
tacd_count, tacd_sum, nTransferred_count, nTransferred_sum,
tHeld_count, tHeld_sum]
Index: []
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/336073.html
上一篇:如何使用pd.read_html抓取帶有%值的HTML表格
下一篇:如何隔離熊貓資料框中的部分字串
