首页 > 解决方案 > 在数据框中复制单行

问题描述

我想写一个函数:

def dupRow(df, val):

它需要一个 DataFrame 和一个值。它在“val”列中找到该行并仅复制该行。因此,例如,如果 df=

 val  data1  data2  data3
0   a      3      1      9
1   b     89      2      8
2   c      7      3      7
3   d      0      4      6

然后 dupRow(df, 'c')返回:

  val  data1  data2  data3
0   a      3      1      9
1   b     89      2      8
2   c      7      3      7
3   c      7      3      7
4   d      0      4      6

它可以将重复的行放在底部,完成后我可以重新排列行,这样更容易看到。

我已经看到了很多使用 np.repeat 的东西,但我无法弄清楚如何只使用一次而不是整个索引......

标签: pythonpandasdataframe

解决方案


IIUC,尝试:

def dupRow(df, val):
    return df.append(df[df["val"].eq(val)]).sort_values("val").reset_index(drop=True)

>>> dupRow(df, 'c')
  val  data1  data2  data3
0   a      3      1      9
1   b     89      2      8
2   c      7      3      7
3   c      7      3      7
4   d      0      4      6

推荐阅读