df = df.drop(df[<some boolean condition>].index)
一个例子,删除dataframe中满足条件
x
所在的行:
df_clear = df.drop(df[df['x']<0.01].index)
df_clear = df.drop(df[(df['x']<0.01) | (df['x']>10)].index)
ref: https://stackoverflow.com/questions/13851535/delete-rows-from-a-pandas-dataframe-based-on-a-conditional-expression-involving
https://www.cnblogs.com/crazyant/p/11557980.html
使用df.drop
DataFrame.drop(labels=None, axis=0, index=None, columns=None, level=None, inplace=False, errors=‘raise’)
1、labels:要删除的标签,一个或者多个(以list形式);
2、axis:指定哪一个轴,=0删除行,=1删除列;
3、columns:指定某一列或者多列(以list形式);
4、level:索引等级,针对多重索引的情况;
5、inplaces:是否替换原来的datafram
用loc过滤df。 “~”表示你想要与你的情况相反。 “:”表示希望保留所有列。
在条件中:“&”表示并,“|”表示或
df_AIS=df_AIS.loc[((df_AIS['航行状态']==1)&(df_AIS['航速']!=0)&(df_AIS['时间']!=0)),:]
上述代码表示选取航行状态为1,航速不为0,时间不为0的航段
df_AIS=df_AIS.loc[~((df_AIS['航行状态']==1)&(df_AIS['航速']!=0
data.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)
1-1 axis确定删除存在缺失值的行或者是列
#删除含有缺失值的行
axis=0或axis='index’
#删除含有缺失值的列
axis=1或axis='columns’
本节主要是自己学习pandas的练习,与你分享。导入Pandas与NumPyimport numpy as np
import pandas as pd生成Series时,pandas默认生成整数索引,我们尝试一下。s = pd.Series([23,2,5,np.nan,6,9])
s使用时间索引与含有标签的Numpy数组生成DataFramedates = pd.date_range('202...
在工作中我们经常会遇到删除某些不符合条件的数据,而且有时候是删除多条,在这里我提供一个简单的操作拌饭
Question:删除有2个0以上的行(不包含2个)
1、我们先读取数据
当然这个数据可以从excel或者其他地方读取
df = pd.DataFrame({'a':[1,0,2,1,3],'b':[0,2,1,0,1],'c':[0,2,1,0,0],'d':[1,2,0,0,0]})
2、统计每一行包含0的个数
sums = (df == 0).astype(int).sum(axis=1
df = df.drop('column_name', axis=1)
需要注意的是,默认情况下,删除的是行(即axis=0)。如果想要永久删除,需要将结果赋值回原来的DataFrame中。
data = pd.read_csv("train.csv")
for i in range(80, 102, 2):
perc = np.percentile(data['area'], i)
print(f"{i} percentile of area is {perc}")
某行的面积值过大,需要删除。
rows = [x for x in data.index if data.loc[x]['area']>256*256]
data2 = dat