python - 在数据框中复制单行
问题描述
我想写一个函数:
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 的东西,但我无法弄清楚如何只使用一次而不是整个索引......
解决方案
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
推荐阅读
- git - 参考私有 git 存储库的 SBT 构建失败
- raspberry-pi - daemonize-liquidsoap.sh 不工作
- php - 从 UploadedFile Symfony 中删除 Exiff
- jsf - 标签库支持命名空间:http://primefaces.org/ui,但没有为名称定义标签:dataView
- jupyter-notebook - 如何以编程方式重命名 Jupyter Notebook?
- gdcm - 使用 GDCM 更改 DICOM 文件中特定标记值的最有效方法
- jquery - 如何在 Kendo 调度程序上编辑 Kendo DateTimePicker?
- perl - 使用 Perl 的动态作用域时如何避免全局变量声明?
- c# - 使用 selenium 和 specflow c# 验证所有值都在下拉列表中
- c# - 从 .NET Core Web API 调用 SalesForce API 并将响应反序列化到 ac# 对象?