dataframe的增删改查

介绍

因为dataframe这个数据结构是一张表,既然是表,那么我们可以将数据像sql一样进行增、删、改、查。以下是对dataframe表操作的一些常用方法。案例中的每个例子,均是在前一个案例的基础上加以编辑的。我们的时间很宝贵,在操作dataframe表的时候,希望下面案例的总结可以节省读者大量的搜索和验证时间。

导入模块

import pandas as pd

案例使用的数据

df = pd.DataFrame(
    {
        'name':['Jack','Will','Billy','Sunny','Susie','Annie','Codie','Kendal','Rachel','Mikie'],
        'age':[12,13,15,12,10,8,10,11,16,14],
        'gender':['m','m','m','f','f','f','m','f','m','f'],
        'likes':['video games','running','basketball','knittig','cooking','dolls','soccer','biking','cooking','skiing']
    })
df

image

dataframe的数据添加

我们在列索引为1(第二列)的位置添加一个新的列,将其命名为'name_abbr'

# 添加列
insert_col = pd.Series(['J','W','B','Sun','Sus','A','C','K','R','M'])
df.insert(1,'name_abbr',insert_col)
df

image

列与列之间的位置交换

用c1存储需要交换的列,删除表中的列df['name'],添加存储的列c1到需要的位置(这里将c1塞进第2列中,索引为1)。

# 列与列之间交换位置
c1 = df['name']
del df['name']
df.insert(1,'name',c1)
df

image

dataframe的数据删除

对列的删除

指定'name_abbr','gender'这两列,将其从表中删除。

# 删除某些列
df.drop(labels=['name_abbr','gender'],axis=1,inplace=True)
df

image

对行的删除

指定行标签,对dataframe的行数据进行删除。这里对行标签为3和5的行做了删除操作。

# 删除某些行,其中labels中指定的是行标签
df.drop(labels=[3,5],axis=0,inplace=True)
df

image

dataframe的数据修改

将满足名字为Jack的记录的年龄改为6岁

df.loc[df['name'] == 'Jack', 'age'] = 6
df

image

修改列标签

df.rename(columns={'name':'names','age':'ages'}, inplace = True)
df

image

修改行标签

df.rename(index={0:'零',4:'四'}, inplace = True)
df

image

重置行索引

df.reset_index(drop=True, inplace=True)
df

image

dataframe的数据查询

查询年龄大于等于14的记录

df_search1 = df[~(df['ages'] < 14)]
df_search1

image

查询大于6岁且小于16岁的记录

1、条件筛选实现

df_search2 = df[(df['ages']>6) & (df['ages']<16)]
df_search2

image

2、between()函数实现

df_search3 = df[df['ages'].between(6,16,'neither')] # both: 左闭右闭,neither:左开右开
df_search3

image

3、isin()函数实现

df_search4 = df[df['ages'].isin([7,8,9,10,11,12,13,14,15])]
df_search4

image

posted @ 2023-01-08 06:30  顺心无忧  阅读(151)  评论(0编辑  收藏  举报