Pandas DataFrame中实现取单个值的读取和修改

 更新时间:2023年10月27日 09:34:41   作者:凞懿  
这篇文章主要介绍了Pandas DataFrame中实现取单个值的读取和修改,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

取DataFrame里面某个位置的值

知道index的时候:

# 这里用index做循环,去每一行某一列的值,直接用 df.loc[index][column name] 即可
for j in raw.index:
    chs_map = china_map[china_map['city_name']==raw.loc[j]['MAP_CITY']]
    sjz_map = china_map[china_map['prv_name']==raw.loc[j]['MAP_PRV']]

不知道index的时候

# 这里取某一行某一列的值,得用函数,要么出来的是一个列表而非对应位置的值
for j in raw['city'].unique()
    chs_map = china_map[china_map['city']==j]['MAP_CITY'].max()
    sjz_map = china_map[china_map['city']==j]['MAP_PRV'].max()

修改对应位置的值

知道index 和列名的时候

data2.loc[3,'hhd'] = 0

不知道index 根据条件修改的时候

#      多个条件, 与或非 找到对应的行, 后面要改的列,最后填值
HD.loc[(HD['STATUS']=='a'|(HD['STATUS']=='b'),'FLAG']=1

所有查询

df[row_start_index, row_end_index] 查对应行

df[0:]	#第0行及之后的行,df的全部数据
df[:2]	#第3行之前的数据不包含第三行 左开右闭
df[0:1]	#第0行
df[1:3] #第2行到第3行(不含第4行)
df[-1:] #最后一行
df[-3:-1] #倒数第3行和倒数第2行,因为没有-0,所以没有最后一行

df.loc[index,column] (使用索引值)

data2.loc['a','segments_name']  #  上面提到的直接取值
data2.loc['a',['segments_name','cnt_case_with_segment']] # 一行两列转置成个列表
data2.loc['a':'c',['segments_name','cnt_case_with_segment']]	 #选取第1行到第3行的数据, 这里面是全闭区间 这里生成dataframe

data.loc[data['gender']=='m','name'] 	 #选取gender列是m,name列的数据
data.loc[data['gender']=='M',['name','age']] #选取gender列是m,name和age列的数据

loc 修改

df.loc['a','name'] = 'aa' #修改index为‘a',column为‘name'的那一个值为aa。
df.loc['a'] = ['bb','ff',11] #修改index为‘s'的那一行的所有值。
df.loc['a',['name','age']] = ['bb',11]    #修改index为‘a',column为‘name'的那一个值为bb,age列的值为11。

iloc[row_index, column_index] (使用索引位置)

data2.iloc[0,0]		#第1行第1列的数据
data2.iloc[1,2]		#第2行第3列的数据
data2.iloc[[1,3],0:2]#第2行和第4行,从第1列到第2列(左闭右开不包含第3列)的数据
data2.iloc[1:3,[1,2]]	#第2行到第3行(不包含第1,4行),第2列和第3列的数据

iloc 修改

df.iloc[1,2] = 19   #修改一无素
df.iloc[:,2] = [11,22,33] #修改一整列
df.iloc[0,:] = ['lily','F',15] #修改一整行

.at .iat .ix

#at函数(使用索引值访问单个元素)
df.at['a','A']
#iat函数(使用索引位置访问单个元素)
df.iat[0,0]
#ix函数(loc与iloc的混合) 切片索引+普通索引同时使用时候的交叉索引
df.ix[0:2,'A':'C']

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • CentOS中使用virtualenv搭建python3环境

    CentOS中使用virtualenv搭建python3环境

    virtualenv可以搭建虚拟且独立的python环境,可以使每个项目环境与其他项目独立开来,保持环境的干净,解决包冲突问题。下面我们来详细探讨下centos中如何来搭建。
    2015-06-06
  • Python中偏函数用法示例

    Python中偏函数用法示例

    这篇文章主要介绍了Python中偏函数用法,结合实例形式分析了Python基于functools模块创建和使用偏函数的相关操作技巧与注意事项,需要的朋友可以参考下
    2018-06-06
  • 对Python强大的可变参数传递机制详解

    对Python强大的可变参数传递机制详解

    今天小编就为大家分享一篇对Python强大的可变参数传递机制详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • Python组合数据类型详解

    Python组合数据类型详解

    这篇文章主要介绍了Python组合数据类型详解,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的朋友可以参考一下
    2022-08-08
  • python进阶教程之函数对象(函数也是对象)

    python进阶教程之函数对象(函数也是对象)

    这篇文章主要介绍了python进阶教程之函数对象,函数对象是指函数也是对象,本文还讲解了lambda函数、函数作为参数传递、map()函数、filter()函数、reduce()函数等内容,需要的朋友可以参考下
    2014-08-08
  • 基于python 爬虫爬到含空格的url的处理方法

    基于python 爬虫爬到含空格的url的处理方法

    今天小编就为大家分享一篇基于python 爬虫爬到含空格的url的处理方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • Python经典题实战记录之百元买百鸡

    Python经典题实战记录之百元买百鸡

    有一道著名的"百钱买百鸡"问题大家应该都不陌生,这篇文章主要给大家介绍了关于Python经典题实战记录之百元买百鸡的相关资料,文中给出了详细的代码示例,需要的朋友可以参考下
    2023-12-12
  • python3爬虫中多线程进行解锁操作实例

    python3爬虫中多线程进行解锁操作实例

    在本篇文章里小编给大家整理了关于python3爬虫中多线程进行解锁操作实例内容,需要的朋友们可以参考下。
    2020-11-11
  • Python详解如何动态给对象增加属性和方法

    Python详解如何动态给对象增加属性和方法

    python是动态语⾔,动态编程语⾔是⾼级程序设计语⾔的⼀个类别,在计算机科学领域已被⼴泛应⽤。它是⼀类在 运⾏时可以改变其结构 的语⾔ :例如新的函数、对象、甚⾄代码可以被引进,已有的函数可以被删除或是其他结构上的变化
    2022-07-07
  • Python中规范定义命名空间的一些建议

    Python中规范定义命名空间的一些建议

    命名空间是Python程序的一大根本,编程时持命名空间的整洁还是十分必要的,这里就来为大家总结Python中规范定义命名空间的一些建议,需要的朋友可以参考下
    2016-06-06

最新评论