python增加一列数据_Pandas DataFrame数据的更改、插入新增的列和行的方法

一、更改DataFrame的某些值

1、更改DataFrame中的数据,原理是将这部分数据提取出来,重新赋值为新的数据。

2、需要注意的是,数据更改直接针对DataFrame原数据更改,操作无法撤销,如果做出更改,需要对更改条件做确认或对数据进行备份。

代码:

import pandas as pd

df1 = pd.DataFrame([['Snow','M',22],['Tyrion','M',32],['Sansa','F',18],['Arya','F',14]], columns=['name','gender','age'])

print("--------更换单个值----------")

# loc和iloc 可以更换单行、单列、多行、多列的值

df1.loc[0,'age']=25 # 思路:先用loc找到要更改的值,再用赋值(=)的方法实现更换值

df1.iloc[0,2]=25 # iloc:用索引位置来查找

# at 、iat只能更换单个值

df1.at[0,'age']=25 # iat 用来取某个单值,参数只能用数字索引

df1.iat[0,2]=25 # at 用来取某个单值,参数只能用index和columns索引名称

print(df1)

结果图:

20190625143345156.png

二、插入新增列、行

代码:

import pandas as pd

df1 = pd.DataFrame([['Snow','M',22],['Tyrion','M',32],['Sansa','F',18],['Arya','F',14]], columns=['name','gender','age'])

print("----------在最后新增一列---------------")

print("-------案例1----------")

# 在数据框最后加上score一列,元素值分别为:80,98,67,90

df1['score']=[80,98,67,90] # 增加列的元素个数要跟原数据列的个数一样

print(df1)

print("-------案例2----------")

print("---------在指定位置新增列:用insert()--------")

# 在gender后面加一列城市

# 在具体某个位置插入一列可以用insert的方法

# 语法格式:列表.insert(index, obj)

# index --->对象 obj 需要插入的索引位置。

# obj ---> 要插入列表中的对象(列名)

col_name=df1.columns.tolist() # 将数据框的列名全部提取出来存放在列表里

print(col_name)

col_name.insert(2,'city') # 在列索引为2的位置插入一列,列名为:city,刚插入时不会有值,整列都是NaN

df1=df1.reindex(columns=col_name) # DataFrame.reindex() 对原行/列索引重新构建索引值

df1['city']=['北京','山西','湖北','澳门'] # 给city列赋值

print(df1)

print("----------新增行---------------")

# 重要!!先创建一个DataFrame,用来增加进数据框的最后一行

new=pd.DataFrame({'name':'lisa',

'gender':'F',

'city':'北京',

'age':19,

'score':100},

index=[1]) # 自定义索引为:1 ,这里也可以不设置index

print(new)

print("-------在原数据框df1最后一行新增一行,用append方法------------")

df1=df1.append(new,ignore_index=True) # ignore_index=True,表示不按原来的索引,从0开始自动递增

print(df1)

结果图:

20190625143345157.png

20190625143345158.png

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值