12

您所在的位置:网站首页 excel表格怎么删除行 12

12

2024-07-09 14:14:22| 来源: 网络整理| 查看: 265

12_Pandas.DataFrame删除指定行和列(drop)

使用drop()方法删除pandas.DataFrame的行和列。

在0.21.0版之前,请使用参数labels和axis指定行和列。从0.21.0开始,可以使用index或columns。

在此,将对以下内容进行说明。

DataFrame指定的行删除 按行名指定(行标签)按行号指定未设置行名的注意事项 DataFrame指定的列删除 按列名指定(列标签)按列号指定 多行多列的删除

删除缺失值NaN和删除具有重复元素的行,请参考文章。

05_Pandas删除,替换并提取其中的缺失值NaN(dropna,fillna,isnull)

以下数据用作示例代码中的示例。

import pandas as pd df = pd.read_csv('./data/12/sample_pandas_normal.csv', index_col=0) print(df) # age state point # name # Alice 24 NY 64 # Bob 42 CA 92 # Charlie 18 CA 70 # Dave 68 TX 70 # Ellen 24 CA 88 # Frank 30 NY 57 DataFrame指定的行删除 按行名指定(行标签)

它由第一个参数labels和第二个参数axis指定。行指定axis= 0。

print(df.drop('Charlie', axis=0)) # age state point # name # Alice 24 NY 64 # Bob 42 CA 92 # Dave 68 TX 70 # Ellen 24 CA 88 # Frank 30 NY 57

默认值为axis = 0,因此可以省略axis。

print(df.drop('Charlie')) # age state point # name # Alice 24 NY 64 # Bob 42 CA 92 # Dave 68 TX 70 # Ellen 24 CA 88 # Frank 30 NY 57

从0.21.0或更高版本开始,它也可以由参数索引指定。

print(df.drop(index='Charlie')) # age state point # name # Alice 24 NY 64 # Bob 42 CA 92 # Dave 68 TX 70 # Ellen 24 CA 88 # Frank 30 NY 57

如果要一次删除多行,请在列表中指定。

print(df.drop(['Bob', 'Dave', 'Frank'])) # age state point # name # Alice 24 NY 64 # Charlie 18 CA 70 # Ellen 24 CA 88 print(df.drop(index=['Bob', 'Dave', 'Frank'])) # age state point # name # Alice 24 NY 64 # Charlie 18 CA 70 # Ellen 24 CA 88

默认情况下,原始DataFrame保持不变,并返回一个新的DataFrame。如果参数inplace设置为True,则将更改原始DataFrame。在这种情况下,不会返回任何新的DataFrame,并且返回值为None。

按行号指定

如果要按行号指定,请使用DataFrame的index属性。

如果在index属性的[]中指定行号,则可以获得相应的行名。可以在列表中指定多个行号。

print(df.index[[1, 3, 5]]) # Index(['Bob', 'Dave', 'Frank'], dtype='object', name='name')

在drop()第一个的参数中指定labels或index的名称。

print(df.drop(df.index[[1, 3, 5]])) # age state point # name # Alice 24 NY 64 # Charlie 18 CA 70 # Ellen 24 CA 88 print(df.drop(index=df.index[[1, 3, 5]])) # age state point # name # Alice 24 NY 64 # Charlie 18 CA 70 # Ellen 24 CA 88 未设置行名的注意事项

如果未设置行名,则index默认为整数序号。当使用数字值而不是这样的字符串作为索引时要小心。

df_noindex = pd.read_csv('./data/12/sample_pandas_normal.csv') print(df_noindex) # name age state point # 0 Alice 24 NY 64 # 1 Bob 42 CA 92 # 2 Charlie 18 CA 70 # 3 Dave 68 TX 70 # 4 Ellen 24 CA 88 # 5 Frank 30 NY 57 print(df_noindex.index) # RangeIndex(start=0, stop=6, step=1)

如果是序列号,则无论原样指定数字值还是使用index属性,结果都将相同。

print(df_noindex.drop([1, 3, 5])) # name age state point # 0 Alice 24 NY 64 # 2 Charlie 18 CA 70 # 4 Ellen 24 CA 88 print(df_noindex.drop(df_noindex.index[[1, 3, 5]])) # name age state point # 0 Alice 24 NY 64 # 2 Charlie 18 CA 70 # 4 Ellen 24 CA 88

如果由于排序原因其不是序列号,结果将有所不同。当直接指定数字值时,将删除行标签为该数字值的行,而当使用index属性时,将删除其行号为该数字值的行。

df_noindex_sort = df_noindex.sort_values('state') print(df_noindex_sort) # name age state point # 1 Bob 42 CA 92 # 2 Charlie 18 CA 70 # 4 Ellen 24 CA 88 # 0 Alice 24 NY 64 # 5 Frank 30 NY 57 # 3 Dave 68 TX 70 print(df_noindex_sort.index) # Int64Index([1, 2, 4, 0, 5, 3], dtype='int64') print(df_noindex_sort.drop([1, 3, 5])) # name age state point # 2 Charlie 18 CA 70 # 4 Ellen 24 CA 88 # 0 Alice 24 NY 64 print(df_noindex_sort.drop(df_noindex_sort.index[[1, 3, 5]])) # name age state point # 1 Bob 42 CA 92 # 4 Ellen 24 CA 88 # 5 Frank 30 NY 57 DataFrame指定的列删除 按列名指定(列标签)

它由第一个参数labels和第二个参数axis指定。列指定axis= 1。

print(df.drop('state', axis=1)) # age point # name # Alice 24 64 # Bob 42 92 # Charlie 18 70 # Dave 68 70 # Ellen 24 88 # Frank 30 57

从0.21.0或更高版本开始,可以使用参数列指定它。

print(df.drop(columns='state')) # age point # name # Alice 24 64 # Bob 42 92 # Charlie 18 70 # Dave 68 70 # Ellen 24 88 # Frank 30 57

如果要一次删除多个列,请在列表中指定。

print(df.drop(['state', 'point'], axis=1)) # age # name # Alice 24 # Bob 42 # Charlie 18 # Dave 68 # Ellen 24 # Frank 30 print(df.drop(columns=['state', 'point'])) # age # name # Alice 24 # Bob 42 # Charlie 18 # Dave 68 # Ellen 24 # Frank 30

参数inplace的使用方法与行的相同。

df_org = df.copy() df_org.drop(columns=['state', 'point'], inplace=True) print(df_org) # age # name # Alice 24 # Bob 42 # Charlie 18 # Dave 68 # Ellen 24 # Frank 30 按列号指定

如果要按列号指定,请使用DataFrame的columns属性。

print(df.columns[[1, 2]]) # Index(['state', 'point'], dtype='object') print(df.drop(df.columns[[1, 2]], axis=1)) # age # name # Alice 24 # Bob 42 # Charlie 18 # Dave 68 # Ellen 24 # Frank 30 print(df.drop(columns=df.columns[[1, 2]])) # age # name # Alice 24 # Bob 42 # Charlie 18 # Dave 68 # Ellen 24 # Frank 30

如果columns是整数值,请小心上述行。

多行多列的删除

从0.21.0及更高版本开始,可以通过同时指定参数index和column来删除多行/多列。

当然,也可以通过行号/列号指定,和使用参数inplace。

print(df.drop(index=['Bob', 'Dave', 'Frank'], columns=['state', 'point'])) # age # name # Alice 24 # Charlie 18 # Ellen 24 print(df.drop(index=df.index[[1, 3, 5]], columns=df.columns[[1, 2]])) # age # name # Alice 24 # Charlie 18 # Ellen 24 df_org = df.copy() df_org.drop(index=['Bob', 'Dave', 'Frank'], columns=['state', 'point'], inplace=True) print(df_org) # age # name # Alice 24 # Charlie 18 # Ellen 24


【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭