一.DataFrame的创建(二维数组,字典)
二.DataFrame的增删改查
增:1.列增加的三种方式:
(1)df['列名']=[10,20,30]
(2)df.loc[:,'列名']=[10,20,30]
(3)df.insert(插入的位置,'列名',[10,20,30])
2.行增加的三种方式:
(1)df.loc['行名']=[10,20,30]
(2)new_df=pd.DataFrame({'语文':[10,20,30],'英语':[40,50,60]},index=['徐凯','李小龙'])
df.append(new_df)
注意点:列的增加插入的位置从0开始索引,行的增加append会创建一个新的对象
创建DataFrame对象的两种方式
# 使用二维数组的方式创建DataFrame对象
import pandas as pd
pd.set_option('display.unicode.east_asian_width',True) # 解决数据输出行列不对齐
data=[[10,20,30],[40,50,60],[70,80,90]] # 10,20,30在一行
index=['徐凯','周星驰','李小龙']
columns=['数学','语文','英语']
df=pd.DataFrame(data=data,index=index,columns=columns)
print(df)
# 使用字典的方式创建DataFrame对象
import pandas as pd
pd.set_option('display.unicode.east_asian_width',True)
data={
'语文':[10,20,30], # 10,20,30在一列
'数学':[40,50,60],
'英语':[70,80,90]
}
index=['徐凯','周星驰','李小龙']
df=pd.DataFrame(data=data,index=index)
print(df)
DataFrame的增
# 增加一列物理成绩
df['物理'] = [11,22,33]
# 增加一列体育成绩
df.loc[:,'体育']=[44,55,66]
# 增加一列化学成绩
df.insert(5,'化学',[77,88,99])
# 增加一行‘钱多多’的各科成绩
df.loc['钱多多']=[11,12,13,14,15,16]
# 增加多行各科成绩
import pandas as pd
pd.set_option('display.unicode.east_asian_width',True)
data={
'语文':[10,20,30],
'数学':[40,50,60],
'英语':[70,80,90]
}
index=['徐凯','周星驰','李小龙']
df=pd.DataFrame(data=data,index=index)
# 方式一
data=[[10,20,30],[49,50,60]]
index=['甄子丹','成龙']
columns=['语文','数学','英语']
new_df=pd.DataFrame(data=data,index=index,columns=columns)
df.append(new_df)
# 方式二
new_df=pd.DataFrame({'语文':[40,50],'数学':[89,99],'英语':[11,22]},index=['甄子丹','成龙'])
df1 = df.append(new_df)
df1 # 会生成一个新的二维列表
DataFrame的删
# 删除列
# 方式一
# df.drop(['列名'],axis=1,inplace=True),axis=1是删除列
drop.drop(['语文'],axis=1, inplace=True)
# 方式二
# df.drop(columns='列名',inplace=True),inplace值为True,替换原数组
df.drop(columns='数学',inplace=True)
# 方式三
# df.drop(labels='列名',axis=1,inplace=True)
df.drop(labels='数学',axis=1,inplace=True)
# 删除行
# 方式一
# df.drop(['行索引'],axis=0, inplace=True)
df.drop(['甄子丹'],axis=0,inplace=True)
# 方式二
# df.drop(index='行索引',inplace=True)
df.drop(index='甄子丹',inplace=True)
# 方式三
# df.drop(labels='行索引',axis=0,inplace=True)
df.drop(labels='甄子丹',axis=0,inplace=True)
DataFrame的改
# 修改列标题(需要将所有列的新标题都写上)
# 方式一
df.columns=['Chinese','Math','English']
# 方式二
df.rename(columns={'Chinese':'语文','Math':'数学','English':'英语'})
# 修改行标题
# 方式一
df.index=list('1234')
# 方式二
df.rename(index={'甄子丹':0,'成龙':1},axis=0,inplace=True)
DataFrame的查
# 抽取一行
df.loc['甄子丹']
# 抽取多行(loc里面是行索引,iloc里面是数字)
df.loc[['甄子丹','成龙']]
df.iloc[[0,1]]
# 抽取指定的列
df['数学']
# 抽取多列
df[['数学','英语']]
# 抽取语文分数大于105,数学分数大于88的同学
df.loc[(df['语文']>105)&(df['数学']>88)]