熊猫根据条件移动行

我正在尝试将列中包含特定字符的每一行移动到数据框的底部.....


    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


慕盖茨4494581
浏览 122回答 3
3回答

莫回无

一种解决方案是首先过滤 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

ITMISS

使用新的数据框,过滤条件,然后连接两个数据框。例如假设您的数据在dfdf1 = pd.DataFrame()df1 = df1.append(df[df["Closer"] != "-"])df1 = df1.append(df[df["Closer"] == "-"])这是一个屏幕截图:

斯蒂芬大帝

IIUC,这就是你需要的。m = df.Closer.str.isdigit()df[m].append(df[~m]).reset_index(drop=True)输出Index   Closer  Running0   0   4   AQ1   3   2   AP2   4   9   AP3   5   5   AQ4   1   -   AQ5   2   -   AD
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python