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 | 无 | 周 |
days | D | 天 |
hours | h | 小时 |
minute | m | 分 |
seconds | s | 秒 |
milliseconds | ms | 毫秒 |
microseconds | us | 微秒 |
nanoseconds | ns | 纳秒 |
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()