废话不多说,直接开讲!
一、
1、pandas变量类型的转换
Pandas
支持的数据类型
:
1、float:浮点型
2、int:整型
3、string:字符串类型
4、bool:布尔类型
5、datetime64[nsr]: 示精确到纳秒的日期和时间
6、datetime64[nsr,tz]:表示带有时区信息的日期和时间
7、timedelta[ns]:表示时间间隔,精度为纳秒
8、category:用于表示具有有限个数不同取值的列。"category"类型可以看作是一种经过优化的"object"类型,适用于具有重复值的列,并且可以提供一些额外的性能优化和内存使用优势。
9、object:用于表示混合类型的列,其中的值可以是任何Python对象。
df.dtypes:用于查看各列的数据类型
不同数据类型之间的转换,其使用方法如下:
#将df里所有的列转换成str
df.astype('str')
df.astype('str').dtypes
#修改某一列数据的数据类型
df.column.astype ('str')
#转换错误
df.astype('int', errors = 'ignore').dtypes #明确指定转换类型的函数:
2、Pandas中的Index
Pandas中的Index,其实是不可变的一维数组
ind=pd.Index([3,4,5,6,7])
#根据下标获取值
ind[3]
#切片获取值
# ind[::2]
#有ndim shap dtype size属性
#但不能进行修改,如果修改就会报错
# ind[3]=20
3、导入Excel文件
使用read_excel()
方法导入文件,首先要指定文件的路径。
注意:使用pandas操作excel使需要先安装openpyxl库
通过以下代码可以导入文件stu_data.xlsx,此时文件是存放在和代码同目录下的,所以是相对路径,而不是绝对路径
import pandas as pd
pd.read_excel('stu_data.xlsx')
3.1 导入.xlsx文件时,指定导入哪个Sheet
pd.read_excel('stu_data.xlsx',sheet_name='Target')
pd.read_excel('stu_data.xlsx',sheet_name=0)
3.2 导入.xlsx文件时,通过index_col指定行索引
pd.read_excel('stu_data.xlsx',sheet_name=0,index_col=0)
3.3 导入.xlsx文件时,通过header指定列索引
pd.read_excel('stu_data.xlsx',sheet_name=0,header=1)
pd.read_excel('stu_data.xlsx',sheet_name=0,header=None)
3.4 导入.xlsx文件时,通过usecols指定导入列
pd.read_excel('stu_data.xlsx',usecols=[1,2,3])
4、导入csv文件
导入csv
文件时除了指明文件路径,还需要设置编码格式。
Python中用得比较多的两种编码格式是UTF-8
和
gbk
,默认编码格式是
UTF-8。我们要根据导入文件本身的编码格式进行设置,通过设置参数encoding来设置导入的编码格式。
4.1 导入.csv文件,文件编码格式是gbk
pd.read_csv('stu_data.csv',encoding='gbk')
4.2、导入.csv文件,指明分隔符
df =pd.read_csv("stu_data.csv",encoding='gbk',sep=' ')
pd.read_csv('stu_data.csv',encoding='gbk',sep=',')
5、导入txt文件
导入.txt文件用得方法时read_table(),read_table()是将利用分隔符分开的文件导入。DataFrame的通用函数。它不仅仅可以导入.txt文件,还可以导入.csv文件。
5.1导入.txt文件
pd.read_table('test_data.txt',encoding='utf8',sep='\t')
5.2导入.csv文件,指明分隔符
pd.read_table('stu_data.csv',encoding='gbk',sep=',')
6、列操作
6.1 修改变量列
columns:
df.columns =新的名称 list
df.columns
rename():
df.rename(columns =新旧名称字典:{旧名称,:新名称,}inplace = False :是否直接替换原数据框)
df.rename(columns ={'newname':'name','newname2':'name2'},inplace = True )
6.2 筛选变量列
1、通过
df.var
或
df[var] 可以选择单列,
但只适用于已存在的列,只能筛选单列,结果为
Series
2、通过
df[[var]]
可以选择多列
df[[var]] #单列的筛选结果为 DataFream
df[['var1', 'var2']]#多列时,列名需要用列表形式提供(因此可使用列表中的切片操作)多列的筛选结果为DF
6.3 删除变量列
df.drop(index / columns =准备删除的行/列标签,多个时用列表形式提供,inplace = False :是否直接更改原数据框 )
用del删除,del删除的是全部删除,内存中都会删除
df.drop(columns =['col1','col2'])
del df['column-name'] 直接删除原数据框相应的一列,建议尽量少用
del df.column_name #不允许
6.4添加变量列
6.4.1 根据新数据添加
df[cloumn]=pd.Series([val,val2,val3],index=[c1,c2,c3])
6.4.2 根据原数据添加
df[cloumn] = df[c2]+df[c3]