Pandas中DataFrame数据删除详情
作者:CPA657499934 时间:2023-12-18 10:40:02
目录
1.根据默认的行列索引操作
1.1行删除
1.2列删除
2.根据自定义的行列索引操作
2.1行删除
2.2列删除
本文介绍
Pandas
中DataFrame
数据删除,主要使用drop
、del
方式。
# drop函数的参数解释
drop(
self,
labels=None, # 就是要删除的行列的标签,用列表给定;
axis=0, # axis是指处哪一个轴,0为行(默认),1为列;
index=None, # index是指某一行或者多行
columns=None, # columns是指某一列或者多列
level=None, # level是指等级,针对多重索引的情况;
inplace=False, # inplaces是否替换原来的dataframe;
errors="raise",
)
axis=0或者 和 index或columns 指定行列只需要使用一组就行
1.根据默认的行列索引操作
示例数据
import numpy as np
import pandas as pd
# 生成随机数组-5行5列
df = pd.DataFrame(np.random.rand(5,5))
print(df)
数据展示
0 1 2 3 4
0 0.760489 0.074633 0.788416 0.087612 0.560539
1 0.758450 0.599777 0.384075 0.525483 0.628910
2 0.386808 0.148106 0.742207 0.452627 0.775963
3 0.662909 0.134640 0.186186 0.735429 0.459556
4 0.328694 0.269088 0.331404 0.835388 0.899107
1.1行删除
[1]删除单行
# 删除单行,删除第2行
df.drop(df.index[1],inplace=True) # inplace=True 原地修改
print(df)
执行结果:
0 1 2 3 4
0 0.605764 0.234973 0.566346 0.598105 0.478153
2 0.383230 0.822174 0.228855 0.743258 0.076701
3 0.875287 0.576668 0.176982 0.341827 0.112582
4 0.205425 0.898544 0.799174 0.000905 0.377990
[2]删除不连续多行
# 删除不连续多行,删除第2和第4行
df.drop(df.index[[1,3]],inplace=True)
print(df)
执行结果:
0 1 2 3 4
0 0.978612 0.556539 0.781362 0.547527 0.706686
2 0.845822 0.321716 0.444176 0.053915 0.296631
4 0.617735 0.040859 0.129235 0.525116 0.005357
[3]删除连续多行
# 删除连续多行
df.drop(df.index[1:3],inplace=True) # 开区间,最后一个索引号不计算在内
print(df)
执行结果:
0 1 2 3 4
0 0.072891 0.926297 0.882265 0.971368 0.567840
3 0.163212 0.546069 0.360990 0.494274 0.065744
4 0.752917 0.242112 0.526675 0.918713 0.320725
1.2列删除
列的删除可以使用
del
和drop
两种方式,del df[1] # 删除第2列,该种方式为原地删除,本文具体讲解drop函数删除。
[1]删除指定列
df.drop([1,3],axis=1,inplace=True) # 指定轴为列
# df.drop(columns=[1,3],inplace=True) # 直接指定列
执行结果:
0 2 4
0 0.592869 0.123369 0.815126
1 0.127064 0.093994 0.332790
2 0.411560 0.118753 0.143854
3 0.965317 0.267740 0.349927
4 0.688604 0.699658 0.932645
[2]删除连续列
df.drop(df.columns[1:3],axis=1,inplace=True) #指定轴
# df.drop(columns=df.columns[1:3],inplace = True) # 指定列
print(df)
执行结果:
0 3 4
0 0.309674 0.974694 0.660285
1 0.677328 0.969440 0.953452
2 0.954114 0.953569 0.959771
3 0.365643 0.417065 0.951372
4 0.733081 0.880914 0.804032
2.根据自定义的行列索引操作
示例数据
df = pd.DataFrame(data=np.random.rand(5,5))
df.index = list('abcde')
df.columns = list('一二三四五')
print(df)
数据展示
一 二 三 四 五
a 0.188495 0.574422 0.530326 0.842489 0.474946
b 0.912522 0.982093 0.964031 0.498638 0.826693
c 0.580789 0.013957 0.515229 0.795052 0.859267
d 0.540641 0.865602 0.305256 0.552566 0.754791
e 0.375407 0.236118 0.129210 0.711744 0.067356
2.1行删除
[1]删除单行
df.drop(['b'],inplace=True)
print(df)
执行结果:
一 二 三 四 五
a 0.306350 0.622067 0.030573 0.490563 0.009987
c 0.672423 0.071661 0.274529 0.400086 0.263024
d 0.654204 0.809087 0.066099 0.167290 0.534452
e 0.628917 0.232629 0.070167 0.469962 0.957898
[2]删除多行
df.drop(['b','d'],inplace=True)
print(df)
执行结果:
一 二 三 四 五
a 0.391583 0.509862 0.924634 0.466563 0.058414
c 0.802016 0.621347 0.659215 0.575728 0.935811
e 0.223372 0.286116 0.130587 0.113544 0.910859
2.2列删除
[1]删除单列
df.drop(['二'],axis=1,inplace=True)# 删除单列
print(df)
执行结果:
一 三 四 五
a 0.276147 0.797404 0.184472 0.081162
b 0.630190 0.328055 0.428668 0.168491
c 0.979958 0.029032 0.934626 0.106805
d 0.762995 0.003134 0.136252 0.317423
e 0.137211 0.116607 0.367742 0.840080
[2]删除多列
df.drop(['二','四'],axis=1,inplace=True) # 删除多列
# df.drop(columns=['二','四'],inplace=True) # 删除多列
print(df)
执行结果:
一 三 五
a 0.665647 0.709243 0.019711
b 0.920729 0.995913 0.490998
c 0.352816 0.185802 0.406174
d 0.136414 0.563546 0.762806
e 0.259710 0.775422 0.794880
来源:https://blog.51cto.com/shenjiren/3994744