文章目录
- 基本操作
- 1.构建dataframe
- (1)创建
- 2.对于大型的dataframe,head方法将只选出头部的五行;tail显示后几行
- 3.指定列的顺序
- 4.转置
- 5.更换索引,查看列名行名
- 6.读取csv文件
- 7.将dataframe写入到csv文件中
- 8.print特定行和列
- 9.把dataframe或series转换成list
- 10.添加一列
- 11.提取符合特定条件的行,比如mask=1的行
- 12.删除某行某列
- 13. 将几列合并成一列
- 14. python修改dataframe列名
- 15.查看DataFrame的index,columns以及values
- 16.describe()函数对于数据的快速统计汇总
- 17. 数据排序
- (1)对轴进行排序
- (2)对列进行排序
- 18.对DataFrame中某一列的值排序
- 19. 查看Dataframe的行数和列数
- 20. corr()计算相关性系数
- 21. 合并两个数据框
- 选择对象、赋值
- 1. 选择行列
- (1)查看列名为x的一列
- (2)查看行名为x的一行
- (3)查看前3行
- (4)查看指定行列
- (5)提取指定行列
- (6)选择数据
- (7)赋值
- 缺失值
- 1.对缺失值进行填充
- 2去掉包含缺失值的行
import pandas as pd
from pandas import DataFrame
基本操作
1.构建dataframe
(1)创建
data = {'state': ['odh2','ndeuu2','dedh6','cdhi','dcfcf','dei'],
'year':[2000, 2001, 2002, 2003, 2004, 2005],
'pop':[1.5, 1.7, 1.8, 2.4, 2.6, 3.6]}
frame = pd.DataFrame(data)
####(2)通过字典创建DataFrame
from pandas import DataFrame
dict1 = dict(num=['10', '12', '13'], profits=[1000, 2000, 3000], year=[2001, 2002, 2003], month=11)
data = DataFrame(dict1)
data.index=['one','two','three']
print(data)
## 字典的键作为DataFrame的列索引,值作为列数据
2.对于大型的dataframe,head方法将只选出头部的五行;tail显示后几行
data.head()
data.head(6) #表示显示前6行数据
data.tail(6) #表示显示后6行数据
3.指定列的顺序
pd.DataFrame(data,columns=['year','state','pop'])
4.转置
frame.T
5.更换索引,查看列名行名
a=['one','10x20','20x30','30x30','10x20','20x40']
data.index = a
#选择数据框中某一列作为索引(行名)
da = data.set_index('years')
#查看列名
data.columns
#查看索引
data.index
6.读取csv文件
(1)
import pandas as pd
data = pd.read_csv("data.csv")
data.head() #查看前5行
#
data = pd.read_csv('data1.csv', sep=';',encoding='UIF-8',header=None)
(2)
inputdata='e1.csv'
da_ex = pd.read_csv(os.path.join('file1/',inputdata),
#header=1, #header=1 指定第一行作为列名
index_col=0) #第一列变为index
7.将dataframe写入到csv文件中
(1)
data.to_csv('2.csv',sep=',',header=0,index=0) #不保存列名,不保存行索引
(2)
file = open(os.path.join('../run_data/',inputdata),'w')
da_ex_2.to_csv(file,sep=',')
8.print特定行和列
print(data.loc[1:2]) #打印第1到2行
data.loc[2:4, ['state', 'year']] #打印行中特定列
9.把dataframe或series转换成list
a = data['pixcel'].tolist()
#把data中列名为“pixcel”的列转换为list
#或者
list(data['pixcel'])
10.添加一列
data['Mask']=b
#在data的最后一列添加了列名为“Mask”的一列,列的值为b,b是一组数值
11.提取符合特定条件的行,比如mask=1的行
data1 = data.loc[data['Mask'].isin(['1'])] #提取mask=1的行
12.删除某行某列
使用drop()函数,此函数有一个列表形参labels,写的时候可以加上labels=[xxx],也可以不加,列表内罗列要删除行或者列的名称,默认是行名称,如果要删除列,则要增加参数axis=1
data.drop([0,3]) #删除第0行和第3行
data =data.drop(columns=['Mask'],axis=1) #删除mask列
#删除最后一列
data.drop(data.columns[len(data.columns)-1], axis=1, inplace=True)
13. 将几列合并成一列
da_po["newColumn"] = da_po["pixcel_x"].map(str) + da_po['te'] + da_po["pixcel_y"].map(str)
#如果某一列是非str类型的数据,需要用到map(str)将那一列数据类型做转换
14. python修改dataframe列名
import pandas as pd
df = pd.DataFrame({'f':[1,2,3],'n':[4,5,6]})
#修改全部列名
df.columns = ['F','N']
#只修改列名f为F
df.rename(columns={'f':'F'})
15.查看DataFrame的index,columns以及values
data.index
data.columns #列名
data.values
16.describe()函数对于数据的快速统计汇总
data.describe() 对每一列数据进行统计,包括计数,均值,std,各个分位数等。
data['mean'] = data.mean(axis = 1) 计算均值
17. 数据排序
(1)对轴进行排序
data.sort_index(axis=1,ascending=False)
(2)对列进行排序
data.sort_values('mean',ascending=False) # 按照mean列对数据进行降序排序
其中axis=1表示对所有的columns进行排序,下面的数也跟着发生移动。后面的ascending=False表示按降序排列,参数缺失时默认升序。
18.对DataFrame中某一列的值排序
#data.sort(columns='x') #即对a中的x这一列,从小到大进行排序。
data.sort_values('x', ascending=True)
19. 查看Dataframe的行数和列数
data.shape #相当于R的dim()
(行数,列数)
data.shape[0]返回的是data的行数,有几行
data.shape[1]返回的是data的列数,有几列
print(len(da)) #行数
print(len(da.columns)) #列数
20. corr()计算相关性系数
data.corr() #默认pearson系数,计算所有列与列之间的相关性
21. 合并两个数据框
#合并两个数据框,添加行
pd.concat([data4,data5])
选择对象、赋值
1. 选择行列
(1)查看列名为x的一列
data.x
data['x']
#根据列名查看是第几列
column=list(da.columns)
print(column.index('Pth2')) #第几列
(2)查看行名为x的一行
data.loc['x']
(3)查看前3行
data[0:3]
data.head(3)
(4)查看指定行列
data.loc[['a','b'],['Gnai3','Klf6']]
#表示选取行名为'a'和'b',以及列名为'Gnai3','Klf6'的列
(5)提取指定行列
data.iloc[:100, [0, 200]]
#提取0到100行,0到200列
(6)选择数据
data[data.c>0] #选择c列中大于0的数据
data[data>0] #直接选择a中所有大于0的数据
data=data.copy()
data[data['x'].isin(['2','3'])] #选取列x中的值中包含'2','3'的所有行。
(7)赋值
data.loc[:,['a','c']]=1 #将a和c列的所有行中的值设置为1
data[data>0]=-data #将data中所有大于0的数转化为负值
缺失值
1.对缺失值进行填充
data.fillna(value=0)
#值为0的数来对缺失值进行填充
2去掉包含缺失值的行
data.dropna(how='any')
#去掉所有包含缺失值的行