pandas学习笔记

本文介绍了Pandas库中读取CSV文件的方法read_csv,包括参数详细解释,如filepath_or_buffer、header和parse_dates。还涵盖了数据帧的行/列删除操作,如drop函数的使用。此外,讨论了数据排序的sort_values函数和时间处理功能,如Timestamp、Timedelta和日期格式转换。
摘要由CSDN通过智能技术生成

pandas 读取csv文件

read_csv(filepath_or_buffer,seq,header,low_memory,infer_datetime_format,engine,parse_dates,index_col)参数说明

  • filepath_or_buffer:文件地址
  • seq:使用的分隔符,默认使用’,'分割
  • header:指定哪一行作为列名
  • low_memory:在内部对文件进行分块处理,从而解析时减少内存使用,但可能 是混合类型推断,默认True,
  • infer_datetime_format:设置该参数为 True 和 parse_dates 参数,pandas会推断列中日期时间字符串的格式,如果可以推断出,则切换到更快方法来解析它们。在某些情况下,这可以使解析速度提高5-10倍
  • engine:要使用的解析器引擎
  • parse_dates:{‘datetime’:[0,1]} 将原数据中的第1、2列作为新的列名为 ‘datatime’ 的列,即将原来的日期列、时间列合并为日期时间一列
  • index_col:指定’datetime’列为索引列
import pandas as pd
pd.set_option('display.max_rows',None)#设置行打印不加限制
df = pd.read_csv("路径\文件名")#读取整个文件
df.head(n=5)#打印df的前n行
print(df.iloc[0])#第一行
print(df.iloc[:3])#前三行
print(df.iloc[:,0])#第一列
print(df.iloc[:,:2])#前两列
print(df[3:10])#第四行到第十行
print(df['列名'])#查看某列

删除行或列

drop:删除之后,返回了新的对象,如要改变原dataframe文件添加参数inplace=True

  • 删除行
df.drop(0)#默认删除第一行
df.drop(0,axis=0)#删除第一行
df.drop(0,axis='rows')#删除第一行
df.drop(labels = '')#删除指定行的label
  • 删除列
df.drop(0,axis=1)#删除第一列
df.drop(0,axis='coluumns')#删除第一列
df.drop(columns='列名')#删除指定列

dataFrame 排序函数

sort_values()函数原理类似于SQL中的order by,可以将数据集依照某个字段或几个字段进行排序,该函数即可根据指定列数亦可以指定行的数据,函数的参数如下

DataFrame.sort_values(by='##',axis=0,ascending=True,inplace = False,na_position='last')
  • by:这个参数要求传入一个字符或者是一个字符列表,用来指定按照axis的中的哪个元素来进行排序
  • axis:默认是0,匹配的是index,当axis=1,匹配的是columns
  • ascending:是否按指定列的数组升序排列,默认为True,即升序排列
  • inplace:是否用排序后的数据集替代原来的数据,默认为False,即不替换
  • na_position:{first,last}设定缺失值的显示位置

pandas 中时间处理

pandas中时间相关的类

类名称描述
Timestamp最基础的时间类,表示某个时间点,在绝大多数的场景中的时间数据都是Timestamp形式的时间
Period表示单个时间跨度,或者某个时间段,例如某一天,某一小时
Timedelta表示不同单位的时间,例如1天,1.5小时,2分钟,1秒等非具体的某个时间段
DatetimeIndex一组Timestamp构成的Index,可以用来作为Series或者DataFrame的索引
PeriodtimeIndex一组Period构成的Index,可以用来作为Series或者DataFrame的索引
TimedetaIndex一组Timedelta构成的Index,可以用来作为Series或者DataFrame的索引
  • pd.to_datetime 将字符串转换为日期格式
df['dateTime'] = pd.to_datetime(df['dateTime'])
  • Timestamp类常用属性
df['dateTime'] = pd.to_datetime(df['dateTime'])
df['year'] = df['dateTime'].apply(lambda x:x.year)#提取时间格式中的年
  • 利用strftime()方法提取指定格式日期
df['dateTime'][0].strftime("%Y-%m")#2023-04
  • Timedelta类
周期名称单位描述
weeks
daysD
hoursh小时
minutem
secondss
millisecondsms毫秒
microsecondsus微秒
nanosecondsns纳秒
df['dateTime'][0]#2023-04-02 10:00
#后移一天
df['dateTime'][0] + pd.Timedelta[days=1]#2023-04-03 10:00
#前移一天
df['dateTime'][0] + pd.Timedelta[days=-1]#2023-04-01 10:00
delta_days = pd.to_datetime("2023-4-10") - df['dateTime'][0]
delta_days.days#8

注意

  • 使用DataFrame.append方法报错时,试试使用df._append()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值