您现在的位置是:网站首页> 编程资料编程资料
pandas获取对应的行或者列方式_python_
2025-08-26
20人已围观
简介 pandas获取对应的行或者列方式_python_
loc
通过标签或布尔数组访问一组行和列。
.loc[] 主要基于标签,但也可以与布尔数组一起使用。
允许的输入为:
- 单个标签,例如’a’,
- 标签列表或数组,例如。[‘a’, ‘b’, ‘c’]
- 带有标签的切片对象,例如’a’:‘f’。
- 与切片轴长度相同的布尔数组,例如。[True, False, True]
- 可对齐的布尔系列。遮罩之前,键的索引将对齐。
- 可对齐索引。返回的选择的索引将作为输入。
获取单行
为了获取当行,只需要利用行号就能够获取,
>>> df = pd.DataFrame([[1, 2], [4, 5], [7, 8]], ... index=['cobra', 'viper', 'sidewinder'], ... columns=['max_speed', 'shield']) >>> print(df.loc["viper"]) max_speed 4 shield 5 Name: viper, dtype: int64
获取特定的几行
- 可以将多个行号组成一个list,然后作为参数输入进去
>>> df = pd.DataFrame([[1, 2], [4, 5], [7, 8]], ... index=['cobra', 'viper', 'sidewinder'], ... columns=['max_speed', 'shield']) >>> print(df.loc[["cobra",'sidewinder']]) max_speed shield cobra 1 2 sidewinder 7 8
- 利用切片获取多个连续的行
在利用切片时,也需要使用label进行切片,否则pandas不会识别
>>> df = pd.DataFrame([[1, 2], [4, 5], [7, 8]], ... index=['cobra', 'viper', 'sidewinder'], ... columns=['max_speed', 'shield']) >>> print(df.loc[ 'viper': 'sidewinder']) max_speed shield viper 4 5 sidewinder 7 8
获取特定行和列
>>> df = pd.DataFrame([[1, 2], [4, 5], [7, 8]], ... index=['cobra', 'viper', 'sidewinder'], ... columns=['max_speed', 'shield']) >>> print(df.loc[ 'viper','shield']) 5
也可以通过切片和列组合,获取特定的数值
>>> df = pd.DataFrame([[1, 2], [4, 5], [7, 8]], ... index=['cobra', 'viper', 'sidewinder'], ... columns=['max_speed', 'shield']) >>> print(df.loc['viper': 'sidewinder',:]) max_speed shield viper 4 5 sidewinder 7 8
通过bool值进行选择
>>> df = pd.DataFrame([[1, 2], [4, 5], [7, 8]], ... index=['cobra', 'viper', 'sidewinder'], ... columns=['max_speed', 'shield']) >>> df.loc[[False, False, True]] max_speed shield sidewinder 7 8
通过条件进行选择获取
通过条件获取,时间也是通过bool获取的一种特例,
>>> df = pd.DataFrame([[1, 2], [4, 5], [7, 8]], ... index=['cobra', 'viper', 'sidewinder'], ... columns=['max_speed', 'shield']) >>> df.loc[df['shield'] > 6] max_speed shield sidewinder 7 8
通过下面的结果,我们可以看出,通过条件获取后是一个对象,该对象的值就是一个bool列表,通过条件获取就是通过这个bool列表进行获取
>>> s = df['shield'] > 6 >>> type(s)>>> s.values array([False, False, True])
通过回调函数获取
>>> df = pd.DataFrame([[1, 2], [4, 5], [7, 8]], ... index=['cobra', 'viper', 'sidewinder'], ... columns=['max_speed', 'shield']) >>> df.loc[lambda df: df['shield'] == 8] max_speed shield sidewinder 7 8
对数值进行修改
这里主要讲的是对数值的修改是永久性的,
>>> df = pd.DataFrame([[1, 2], [4, 5], [7, 8]], ... index=['cobra', 'viper', 'sidewinder'], ... columns=['max_speed', 'shield']) >>> df.loc[['viper', 'sidewinder'], ['shield']] = 50 >>> df max_speed shield cobra 1 2 viper 4 50 sidewinder 7 50
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
您可能感兴趣的文章:
相关内容
- pandas如何获取某个数据的行号_python_
- python进程池Pool中apply方法与apply_async方法的区别_python_
- python array中关于[a,b,c]的使用方式_python_
- Python进程multiprocessing.Process()的使用解读_python_
- selenium常用API的使用过程记录(包括自动登录)_python_
- Python使用multiprocessing如何实现多进程_python_
- pandas报错AttributeError: DataFrame object has no attribute ix问题_python_
- python模拟登陆、POST/GET请求方式_python_
- 解决Windows下PowerShell无法进入Python虚拟环境问题_python_
- 解决windows下命令行执行python3失效,会打开应用商店问题_python_