# -*- coding: utf-8 -*-
"""
Created on Sun Mar 4 19:35:44 2018
@author: Lenovo
"""
"""
DataFrame类似于excel的表格,用于存储多行多列的数据集合。
索引列index,默认从0开始
from pandas import DataFrame
df = DataFrame({
"age": [21,22,23], #这里的逗号不能少
"name": ['KEN','JOHN','JIMI']
})
也可以指定DataFrame的index
from pandas import DataFrame
df = DataFrame({
"age": [21,22,23], #这里的逗号不能少
"name": ['KEN','JOHN','JIMI']
}, #这里的逗号不能少
index = ['first','second','third'] #index要写在大括号的外面
)
DateFrame的访问
按列名访问:df['age']
输出如下
first 21
second 22
third 23
Name: age, dtype: int64
df[['age','name']] #注意这里是双层中括号,将age和name作为一个数组传入。
同时输出age列和name列的内容,如下
age name
first 21 KEN
second 22 JOHN
third 23 JIMI
按行访问之切片
df[1:2]#输出df中的第二行数据。注意不包含第三行,区间左闭合。
输出如下:
age name
second 22 JOHN
#切片永远是左闭合,即大于等于第一个指定索引,小于第二个指定索引。
按行访问之指定行名
df.loc[['first','second']]
输出如下
age name
first 21 KEN
second 22 JOHN
#注意这里df后有.loc,没有.loc就是按列访问,但是列名并没有first和second,会导致报错。
#'first','second'的中括号是双层的。
按行、列号访问
df.iloc[0:1,0:1] # 这里的中括号只有1层,而且不用小括号。
#输出结果:
age
first 21
按行、列名索引 df.at
from pandas import DataFrame
df = DataFrame({
"age": [21,22,23], #这里的逗号不能少
"name": ['KEN','JOHN','JIMI']
},
index = ['first','second','third']
)
df.at['first','name'] #输出first行、name列的元素,输出:'KEN'
df.at['first','age'] #输出first行、name列的元素,输出:21
列名的修改 df.columns=
df.columns 输出df的所有列名,注意这里的columns的开头字母是小写的
输出:Index(['age', 'name'], dtype='object')
df.columns = ['age2','name2'] #将df的列名改为age2和name2
df #输出更名后的结果
Out[6]:
age2 names
first 21 KEN
second 22 JOHN
third 23 JIMI
行名的更改:
df.index 输出df的所有行名,注意这里的index的开头字母是小写的
输出 Out[7]: Index(['first', 'second', 'third'], dtype='object')
df.index = range(1,4) #将行名改为1,2,3,注意不包含4.range里的参数必须是整数。
df.index = ['a','b','c']#将行名改为a,b,c,注意这里用的是方括号。
元素的删除
根据行号删除
df.drop('first',axis=0) #删除整个first行,但是不对df产生影响,要用df=df.drop('first',axis=0)
#删除行的时候,axis只能设为0,不能设为1,
#设为1的时候会报错,提示ValueError: labels ['first'] not contained in axis.
#按行删除的时候axis也可以不设置,默认就是0
根据列号删除
df=df.drop('age',axis=1)
#这里的axis不可省略
from pandas import DataFrame
df = DataFrame({
"age": [21,22,23], #这里的逗号不能少
"name": ['KEN','JOHN','JIMI']
},
index = ['first','second','third']
)
df=df.drop('first',axis=0)
df
输出:
Out[16]:
age name
second 22 JOHN
third 23 JIMI
from pandas import DataFrame
df = DataFrame({
"age": [21,22,23], #这里的逗号不能少
"name": ['KEN','JOHN','JIMI']
},
index = ['first','second','third']
)
df=df.drop('age',axis=1)
df
输出:
Out[23]:
name
first KEN
second JOHN
third JIMI
增加行:
df.loc[len(df)] = [24,'KK']
#在df的最后加上一行,内容是24和KK,python自动加一个索引3.
from pandas import DataFrame
df = DataFrame({
"age": [21,22,23], #这里的逗号不能少
"name": ['KEN','JOHN','JIMI']
},
index = ['first','second','third']
)
df.loc[len(df)] = [24,'KK']
df
输出:
Out[27]:
age name
first 21 KEN
second 22 JOHN
third 23 JIMI
3 24 KK
这种增加行的方法效率很低,不可用于遍历之中。
增加列:
df['newcolumn']=[2,4,5]
#很简单哦,直接加列名和元素
len(df) #返回df的行数
"""
from pandas import DataFrame
df = DataFrame({
"age": [21,22,23], #这里的逗号不能少
"name": ['KEN','JOHN','JIMI']
},
index = ['first','second','third']
)
df['newcolumn']=[2,4,5]
df
"""
Created on Sun Mar 4 19:35:44 2018
@author: Lenovo
"""
"""
DataFrame类似于excel的表格,用于存储多行多列的数据集合。
索引列index,默认从0开始
from pandas import DataFrame
df = DataFrame({
"age": [21,22,23], #这里的逗号不能少
"name": ['KEN','JOHN','JIMI']
})
也可以指定DataFrame的index
from pandas import DataFrame
df = DataFrame({
"age": [21,22,23], #这里的逗号不能少
"name": ['KEN','JOHN','JIMI']
}, #这里的逗号不能少
index = ['first','second','third'] #index要写在大括号的外面
)
DateFrame的访问
按列名访问:df['age']
输出如下
first 21
second 22
third 23
Name: age, dtype: int64
df[['age','name']] #注意这里是双层中括号,将age和name作为一个数组传入。
同时输出age列和name列的内容,如下
age name
first 21 KEN
second 22 JOHN
third 23 JIMI
按行访问之切片
df[1:2]#输出df中的第二行数据。注意不包含第三行,区间左闭合。
输出如下:
age name
second 22 JOHN
#切片永远是左闭合,即大于等于第一个指定索引,小于第二个指定索引。
按行访问之指定行名
df.loc[['first','second']]
输出如下
age name
first 21 KEN
second 22 JOHN
#注意这里df后有.loc,没有.loc就是按列访问,但是列名并没有first和second,会导致报错。
#'first','second'的中括号是双层的。
按行、列号访问
df.iloc[0:1,0:1] # 这里的中括号只有1层,而且不用小括号。
#输出结果:
age
first 21
按行、列名索引 df.at
from pandas import DataFrame
df = DataFrame({
"age": [21,22,23], #这里的逗号不能少
"name": ['KEN','JOHN','JIMI']
},
index = ['first','second','third']
)
df.at['first','name'] #输出first行、name列的元素,输出:'KEN'
df.at['first','age'] #输出first行、name列的元素,输出:21
列名的修改 df.columns=
df.columns 输出df的所有列名,注意这里的columns的开头字母是小写的
输出:Index(['age', 'name'], dtype='object')
df.columns = ['age2','name2'] #将df的列名改为age2和name2
df #输出更名后的结果
Out[6]:
age2 names
first 21 KEN
second 22 JOHN
third 23 JIMI
行名的更改:
df.index 输出df的所有行名,注意这里的index的开头字母是小写的
输出 Out[7]: Index(['first', 'second', 'third'], dtype='object')
df.index = range(1,4) #将行名改为1,2,3,注意不包含4.range里的参数必须是整数。
df.index = ['a','b','c']#将行名改为a,b,c,注意这里用的是方括号。
元素的删除
根据行号删除
df.drop('first',axis=0) #删除整个first行,但是不对df产生影响,要用df=df.drop('first',axis=0)
#删除行的时候,axis只能设为0,不能设为1,
#设为1的时候会报错,提示ValueError: labels ['first'] not contained in axis.
#按行删除的时候axis也可以不设置,默认就是0
根据列号删除
df=df.drop('age',axis=1)
#这里的axis不可省略
from pandas import DataFrame
df = DataFrame({
"age": [21,22,23], #这里的逗号不能少
"name": ['KEN','JOHN','JIMI']
},
index = ['first','second','third']
)
df=df.drop('first',axis=0)
df
输出:
Out[16]:
age name
second 22 JOHN
third 23 JIMI
from pandas import DataFrame
df = DataFrame({
"age": [21,22,23], #这里的逗号不能少
"name": ['KEN','JOHN','JIMI']
},
index = ['first','second','third']
)
df=df.drop('age',axis=1)
df
输出:
Out[23]:
name
first KEN
second JOHN
third JIMI
增加行:
df.loc[len(df)] = [24,'KK']
#在df的最后加上一行,内容是24和KK,python自动加一个索引3.
from pandas import DataFrame
df = DataFrame({
"age": [21,22,23], #这里的逗号不能少
"name": ['KEN','JOHN','JIMI']
},
index = ['first','second','third']
)
df.loc[len(df)] = [24,'KK']
df
输出:
Out[27]:
age name
first 21 KEN
second 22 JOHN
third 23 JIMI
3 24 KK
这种增加行的方法效率很低,不可用于遍历之中。
增加列:
df['newcolumn']=[2,4,5]
#很简单哦,直接加列名和元素
len(df) #返回df的行数
"""
from pandas import DataFrame
df = DataFrame({
"age": [21,22,23], #这里的逗号不能少
"name": ['KEN','JOHN','JIMI']
},
index = ['first','second','third']
)
df['newcolumn']=[2,4,5]
df