为了账号安全,请及时绑定邮箱和手机立即绑定

熊猫根据条件移动行

熊猫根据条件移动行

慕盖茨4494581 2022-06-07 19:08:36
我正在尝试将列中包含特定字符的每一行移动到数据框的底部.....    Index  Closer  Running      0      4      AQ      1      -      AQ      2      -      AD      3      2      AP      4      9      AP      5      5      AQ我正在尝试将 Closer 列中包含“-”的每一行移动到数据框的底部,所以我的结果数据框看起来像这样,我该怎么做呢?      Index  Closer  Running      0      4        AQ      1      2        AP      2      9        AP      3      5        AQ      4      -        AQ      5      -        AD
查看完整描述

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


查看完整回答
反对 回复 2022-06-07
?
ITMISS

TA贡献1871条经验 获得超8个赞

使用新的数据框,过滤条件,然后连接两个数据框。


例如假设您的数据在df


df1 = pd.DataFrame()

df1 = df1.append(df[df["Closer"] != "-"])

df1 = df1.append(df[df["Closer"] == "-"])

这是一个屏幕截图:

//img1.sycdn.imooc.com//629f31e20001e36605720725.jpg

查看完整回答
反对 回复 2022-06-07
?
斯蒂芬大帝

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


查看完整回答
反对 回复 2022-06-07
  • 3 回答
  • 0 关注
  • 121 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号