获取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 2024-04-13 19:15  会飞的金鱼  阅读(34)  评论(0)    收藏  举报