3 回答

TA贡献1865条经验 获得超7个赞
一种解决方案是首先过滤 DataFrame,选择带有“-”的行和没有它的行。之后,您创建一个新的 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
添加回答
举报