pandas数组及DataFrame的索引及切片操作
本帖最后由 Handsome_zhou 于 2022-5-18 09:05 编辑对于pandas的dateframe和series,要想掌握它,最好的办法就是使用它。
pandas模块为已经具有丰富的数据结构的python增加了两个新的数据容器:Series和DataFrame。
Series是具有标签的(也就是具有索引的)一维矢量。dataframe是一个行和列都具有标签的表格,它与Excel表格和MySql表格并无不同。dataframe的每一个列都是一个series。除了一些特殊情况外,pandas对dataframe和series的处理方式是相似的。
frame和series不是简单的存储容器,他们都内置了进行各种数据整理操作的工具。如:
一、单极和分级索引
二、处理缺失数据
三、对整个列和表进行算术和布尔运算
四、数据库类型的操作(比如合并和聚合)
五、绘制各个列和整个表格
六、从文件读取数据并将数据写入文件
frame和series非常方便,当你在处理一维或二维表格数据时,都应该使用它们。
pandas的文件读写功能很强大,其输入输出功能一方面可以实现frame和series之间的数据交换,另一方面能实现CVS文件、表格文件、固定宽度文件、JSON文件、操作系统剪贴板等之间的数据交换。
读取CVS文件:
函数read_cvs()根据文件名或者打开的文件的句柄,从指定的CSV文件中读取一个frame。该函数具有近50个可选参数,他是处理CSV文件的瑞士军刀。
read_csv()函数的部分重要参数如下:
sep或delimiter:列分隔符。
header:作为列名的行号。如果你有自己的列名列表,则传递None。
index_col:作为索引的列名。
names:列名列表
由于我比较笨,对相对路径一直不太感冒,所以采用绝对路径的方式读取文件。
示例代码:
import numpy as np
import pandas as pd
from datetime import datetime
path = 'D:\\xap.csv'
df = pd.read_csv(path,encoding='UTF-8')
#将字符串索引转换成时间索引
df['date'] = pd.to_datetime(df['date'])
#将DateFrame转换成Series
ts = pd.Series(df['value'].values,index=df['date'])
#ts.head()
#ts.axes
#ts['2004']
#ts.head().index
#ts['2005-01-19']
#ts
#ts['2005']
#切片操作
ts['2004-12':'2005-2']
部分运行结果:
numpy数组切片示例:
对dataframe取行或列的操作:
import pandas as pd
data = pd.DataFrame(data)
data_column2= data.iloc[:,:1]#取第一列
data_raw2 = data.iloc[:1,:]#取第一行
加油,最近也在看pandas视频 大志若愚 发表于 2020-10-27 08:00
加油,最近也在看pandas视频
嗯嗯,一起加油
页:
[1]