醒醒,别睡了...讲《数据分析pandas库》了—/—<2>

废话不多说,直接开讲!

一、

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]

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜就多练_0828

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值