获取DataFrame数据的行数和列数
row,col=df.shape
row,col=df.shape[0],df.shape[1]
获取DataFrame前3条数据
# 默认是5 df.head(3)
获取DataFrame指定条件下的指定列(多个条件用&或|连接,并且每个条件加上括号())
students[students["student_id"]==101][["name","age"]] students.loc[students["student_id"]==101,["name","age"]]
DataFrame新增列
employees["bonus"]=employees["salary"]*2
DataFrame删除重复列
1,drop_duplicats()方法
函数功能:
返回去除重复行的DataFrame,不考虑索引。
参数如下:
- subset:列标签或列标签组成的列表,默认所有列
- keep:决定重复行中保留哪个。first:保留第一个;last:保留最后一个;False:删除所有的重复行。
- inplace:布尔值,默认为False。不修改原来的DataFrame。
- ignore_index:布尔值,默认False。不改变DataFrame的原有索引标签,否则将重新从0开始。
customers.drop_duplicates(subset=["email"],inplace=True)
2,duplicated()
函数功能:
返回是否为重复行的布尔值Series
函数参数:
- subset:列标签或列标签组成的列表,默认所有列
- keep:决定标记重复行中的哪个:first:标记重复行的第一个之外的为True;last:标记重复行的最后一个之外的为True;False:标记所有的重复行为True。
# 找到重复行 ds=df.duplicated(keep="first") # 使用非运算,返回不重复的行 df_unique=df[~ds]
DataFrame修改列值
# 方法1 employees["salary"]*=2 # 方法2 employees.salary *=2
DataFrame修改列名
# 方法1 使用rename()函数 students.rename(columns={"id":"student_id","name":"student_name"},inplace=True)
# 方法2 直接分配新列名列表 students.columns=["student_id","student_name"]
# 方法3 替换列属性字符串 students.columns=students.columns.str.replace("id","student_id") students.columns=students.columns.str.replace("name","student_name")
# 方法4 使用set_axis()函数重命名 students.set_axis(["student_id","student_name"],axis="columns",inplace=True)
DataFrame修改列数据类型
# 设置单列数据类型 df["A"].astype("int") # 设置多列数据类型 df.astype({'A':'int','B':'str','C':'float'})
DataFrame填充Nan值
fillna()函数
功能:主要用于填充数据中的空值NaN
- value:指定用来填充空值的值。可以是单个值,或者字典(key是列名,value是值)
- method:可以使用‘ffill’或‘bfill’来指定使用向前填充或后向填充的方式填充空值。'ffill'表示用前一个非缺失值填充当前空值,'bfill'表示用后一个非缺失值填充当前空值。
- axis:可指定填充的方向,默认为0(行方向)
- inplace:是否修改原DataFrame。默认为False
- limit:可以指定每列或每行最多填充的空值数量。这对时间序列数据特别有用,可以限制连续填充的最大数量。
- downcast:可以指定是否对填充后的数据进行类型转换来减少内存使用。
# 使用单个值填充所有缺失值 df.fillna(0) # 按列指定不同的填充量 df.fillna({"A":0,"B":-1}) # 使用前一个非缺失值填充 df.fillna(method="ffill") # 使用后一个非缺失值填充 df.fillna(method="bfill") # 直接修改原DataFrame df.fillna(value=0,inplace=True) # 限制连续填充的数量 df.fillna(method='ffill',limit=1) # 类型向下转换以节省内存 df.fillna(0,downcast='infer')
pandas中sort_values()排序
主要参数:
- by:字符串或字符串列表
- ascending:是否升序排序,默认为True。布尔值或布尔值列表。
- na_position:{"first","last"},默认值为last,(如果指定排序的列中有nan值,可指定nan值放在第一个还是最后一个)
# 升序排列 df.sort_values('score') # 降序排列,nan值放在最后 df.sort_values(by="score",ascending=False) # nan值放在第一个 df.sort_values(by="score",na_position="first") # 按照grammer列降序,score升序 df.sort_values(by=["grammer","score"],ascending=[False,True])
posted on
浙公网安备 33010602011771号