文章目录

  • 基本操作
  • 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)

python dataframe取前n行 dataframe取前10行_缺失值


####(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的列索引,值作为列数据

python dataframe取前n行 dataframe取前10行_缺失值_02

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')
#去掉所有包含缺失值的行