我有一個這樣的資料框:
data = {'col1':['XXX', 'AAA', 'ZZZ'],'col2':['BBB', 'AAA','TTT'], 'col3': ['BBB', 'CCC', 'TTT'], 'col4': ['XXX', 'CCC', 'ZZZ']}
df = pd.DataFrame(data)
df

我想生成一個將字串連接在一起的列,但不會自動按字母順序排列:
我希望它使用 col1 作為組合的第一部分。
但是,我已經運行了這段代碼,并且得到了一個按字母順序排列的輸出——這是我不想要的。我希望它使用代碼中規定的順序
df['combos'] = ["_".join((k for k in set(v) if pd.notnull(k))) for v in
df[["col1", "col2", "col3", "col4"]].values]
df

uj5u.com熱心網友回復:
使用dict.fromkey原始訂購技巧:
df['combos'] = ["_".join(dict.fromkeys(k for k in v if pd.notnull(k))) for v in
df[["col1", "col2", "col3", "col4"]].values]
print (df)
col1 col2 col3 col4 combos
0 XXX BBB BBB XXX XXX_BBB
1 AAA AAA CCC CCC AAA_CCC
2 ZZZ TTT TTT ZZZ ZZZ_TTT
如果沒有缺失值:
df['combos'] = ["_".join(dict.fromkeys(v)) for v in
df[["col1", "col2", "col3", "col4"]].values]
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/418874.html
標籤:
