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

在数据框中添加 n 个空行

在数据框中添加 n 个空行

慕的地10843 2021-06-22 09:10:12
我想在具有这样一个深度列的深度范围上扩展这个数据框:import numpy as npimport pandas as pddepth = np.array([0.8, 0.9, 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2.0, 2.1, 2.2, 2.3, 2.4, 2.5])    df1 = pd.DataFrame({'depth': [0.8, 0.9, 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2.0, 2.1, 2.2],           '400.0': [13.909261, 7.758734, 3.513627, 2.095409, 1.628918, 0.782643, 0.278548, 0.160153, -0.155895, -0.152373, -0.147820, -0.023997, 0.010729, 0.006050, 0.002356],           '401.0': [14.581624, 8.173803, 3.757856, 2.223524, 1.695623, 0.818065, 0.300235, 0.173674, -0.145402, -0.144456, -0.142969, -0.022471, 0.010802, 0.006181, 0.002641],           '402.0': [15.253988, 8.588872, 4.002085, 2.351638, 1.762327, 0.853486, 0.321922, 0.187195, -0.134910, -0.136539, -0.138118, -0.020945, 0.010875, 0.006313, 0.002927],           '403.0': [15.633908, 8.833914, 4.146499, 2.431543, 1.798185, 0.874350, 0.333470, 0.192128, -0.130119, -0.134795, -0.136049, -0.019307, 0.012037, 0.006674, 0.003002],           '404.0': [15.991816, 9.066159, 4.283401, 2.507818, 1.831721, 0.894119, 0.344256, 0.196415, -0.125758, -0.133516  , -0.134189, -0.017659, -0.013281,0.007053, 0.003061],           '405.0': [16.349725, 9.298403, 4.420303, 2.584094, 1.865257, 0.913887, 0.355041, 0.200702, -0.121396, -0.132237, -0.132330, -0.016012, 0.014525, 0.007433, 0.003120]           })因此,我需要在这种情况下是在三个附加行的底部与NaN价值观。同样,我的df2深度范围从 1.1 到 2.5,需要根据扩展范围填充上面的3 行depth。我该怎么做?
查看完整描述

3 回答

?
qq_遁去的一_1

TA贡献1725条经验 获得超7个赞

您可以使用 merge

pd.DataFrame({'depth':depth}).merge(df1,how='left')


查看完整回答
反对 回复 2021-06-29
?
一只名叫tom的猫

TA贡献1906条经验 获得超3个赞

一种简单的方法是设置索引,depth然后使用depth数组重新索引:


df1.set_index('depth').reindex(depth).reset_index()



    depth      400.0      401.0      402.0      403.0      404.0      405.0

0     0.8  13.909261  14.581624  15.253988  15.633908  15.991816  16.349725

1     0.9   7.758734   8.173803   8.588872   8.833914   9.066159   9.298403

2     1.0   3.513627   3.757856   4.002085   4.146499   4.283401   4.420303

3     1.1   2.095409   2.223524   2.351638   2.431543   2.507818   2.584094

4     1.2   1.628918   1.695623   1.762327   1.798185   1.831721   1.865257

5     1.3   0.782643   0.818065   0.853486   0.874350   0.894119   0.913887

6     1.4   0.278548   0.300235   0.321922   0.333470   0.344256   0.355041

7     1.5   0.160153   0.173674   0.187195   0.192128   0.196415   0.200702

8     1.6  -0.155895  -0.145402  -0.134910  -0.130119  -0.125758  -0.121396

9     1.7  -0.152373  -0.144456  -0.136539  -0.134795  -0.133516  -0.132237

10    1.8  -0.147820  -0.142969  -0.138118  -0.136049  -0.134189  -0.132330

11    1.9  -0.023997  -0.022471  -0.020945  -0.019307  -0.017659  -0.016012

12    2.0   0.010729   0.010802   0.010875   0.012037  -0.013281   0.014525

13    2.1   0.006050   0.006181   0.006313   0.006674   0.007053   0.007433

14    2.2   0.002356   0.002641   0.002927   0.003002   0.003061   0.003120

15    2.3        NaN        NaN        NaN        NaN        NaN        NaN

16    2.4        NaN        NaN        NaN        NaN        NaN        NaN

17    2.5        NaN        NaN        NaN        NaN        NaN        NaN


查看完整回答
反对 回复 2021-06-29
?
弑天下

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

使用 combine_first

>>> pd.DataFrame({'depth':depth}).combine_first(df1)

使用 pd.concat

>>> pd.concat([pd.DataFrame({'depth':depth}), df1.iloc[:,1:]], 1)


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

添加回答

举报

0/150
提交
取消
微信客服

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

帮助反馈 APP下载

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

公众号

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