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
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
列与列之间的位置交换
用c1存储需要交换的列,删除表中的列df['name']
,添加存储的列c1到需要的位置(这里将c1塞进第2列中,索引为1)。
# 列与列之间交换位置
c1 = df['name']
del df['name']
df.insert(1,'name',c1)
df
dataframe的数据删除
对列的删除
指定'name_abbr'
,'gender'
这两列,将其从表中删除。
# 删除某些列
df.drop(labels=['name_abbr','gender'],axis=1,inplace=True)
df
对行的删除
指定行标签,对dataframe的行数据进行删除。这里对行标签为3和5的行做了删除操作。
# 删除某些行,其中labels中指定的是行标签
df.drop(labels=[3,5],axis=0,inplace=True)
df
dataframe的数据修改
将满足名字为Jack的记录的年龄改为6岁
df.loc[df['name'] == 'Jack', 'age'] = 6
df
修改列标签
df.rename(columns={'name':'names','age':'ages'}, inplace = True)
df
修改行标签
df.rename(index={0:'零',4:'四'}, inplace = True)
df
重置行索引
df.reset_index(drop=True, inplace=True)
df
dataframe的数据查询
查询年龄大于等于14的记录
df_search1 = df[~(df['ages'] < 14)]
df_search1
查询大于6岁且小于16岁的记录
1、条件筛选实现
df_search2 = df[(df['ages']>6) & (df['ages']<16)]
df_search2
2、between()函数实现
df_search3 = df[df['ages'].between(6,16,'neither')] # both: 左闭右闭,neither:左开右开
df_search3
3、isin()函数实现
df_search4 = df[df['ages'].isin([7,8,9,10,11,12,13,14,15])]
df_search4