3 回答
TA貢獻1865條經驗 獲得超7個贊
一種解決方案是首先過濾 DataFrame,選擇帶有“-”的行和沒有它的行。之后,您創(chuàng)建一個新的 DataFrame,它最初不包含帶有“-”的行,以及第二個 DF,其中只存儲帶有“-”的行。然后你將它們連接在一起。
d = pd.DataFrame(data = {'Closer':[4,'-','-',2,9,5],'Running':'AQ','AQ','AD','AP','AP','AQ']})
d = pd.concat([d[d.Closer!='-'],d[d.Closer=='-']])
d
TA貢獻1871條經驗 獲得超8個贊
使用新的數據框,過濾條件,然后連接兩個數據框。
例如假設您的數據在df
df1 = pd.DataFrame()
df1 = df1.append(df[df["Closer"] != "-"])
df1 = df1.append(df[df["Closer"] == "-"])
這是一個屏幕截圖:

TA貢獻1827條經驗 獲得超8個贊
IIUC,這就是你需要的。
m = df.Closer.str.isdigit()
df[m].append(df[~m]).reset_index(drop=True)
輸出
Index Closer Running
0 0 4 AQ
1 3 2 AP
2 4 9 AP
3 5 5 AQ
4 1 - AQ
5 2 - AD
添加回答
舉報
