pandas 中dataframe对象增加行与 dataframe对象修改

增加行

在机器学习实验中和 for 循环中,经常需要重复对同一个dataframe 对象中增加行。观察下述示例:`

import numpy as np
import pandas as pd
uu=np.random.randn(2,4)
uu = pd.DataFrame(uu,columns=('A','B','C','D'))
print(uu)

执行结果如下:

          A         B         C         D
0 -1.134756  0.813057  0.507945  0.003945
1  0.960421  0.646768  1.491001 -0.251167

假如我们想要把:

dd = np.random.randn(1,4)
dd = pd.DataFrame(dd)
print(dd)

即:

   0         1         2        3
0  0.584214 -1.092008  0.146267  1.53093

与之合并,使用常见语句后:

cc=uu.append(dd,ignore_index= True)
print(cc)

注意:

  • ignore_index 的值应该为 True ,这样会执行index 对象的重排 。 否则保留原来的index.
  • 合并的两个对象列数应该相等。 对values 对象的行列修改可以使用 reshape函数。reshape(1,-1) 代表将数据合并成一行,reshape(-1,1) 代表将数据合并成一列。
  • 合并的两个对象应该为dataframe 或者是Series ,不能是 numpy对象或者其他。

合并后的结果为:

          A         B         C         D       0         1         2         3
0  0.454534  0.905429 -0.221664 -0.270886     NaN       NaN       NaN       NaN
1 -1.138850 -0.199603 -1.176881 -0.205342     NaN       NaN       NaN       NaN
2       NaN       NaN       NaN       NaN  0.9215 -0.642538 -0.172892 -0.038865

这显然不是我们想要的!
更改的方法为,将新的增加得行对象赋予列名,且必须是和想要合并的对象相同的列名。更改语句

dd = pd.DataFrame(dd)  #为
dd = pd.DataFrame(dd,columns=('A','B','C','D'))

更改后的结果为:

          A         B         C         D
0 -0.129192  1.959532 -0.527883 -1.110212
1 -0.010936  1.159395  1.581872 -1.070567
2  1.403309 -0.755311  1.112327  0.701520

修改值

  • 不能对切片进行修改和赋值,这样做一般会报错!
  • 对 dataframe 对象值的修改,应该使用.loc 或者 .iloc 或者。ix 指定位置修改。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值