pandas(数据)
pandas
数据读写
csv文件
读
pd.read_csv(filepath_or_buffer,[sep = ',',header = 'infer',names = None,index_col = None,encoding = None]):
"""
filepath_or_buffer:数据路径或缓存,缓冲区。当文件有中文,会有问题,可先用open打开文件,把打开的给他
sep:分隔符
header:列名称(默认第一行)
names:要使用的列名称
index_col:行标签
encoding:编码格式
"""
写
data.to_csv(path_or_buf.[sep = ',',columns = None,header,index,inder_label = None,mode = 'w',encoding = None]):
"""
header,index:默认为true
inder_label:索引名称
mode:写入模式
"""
excel
与上面类似
读
pd.read_excel(*args,**kwargs): # 将文件读取到Pandas DataFrame中
"""
sheet_name:工作表名称
"""
读的时候需依赖xlrd(要安装)
写
pd.to_excel
也可读其他文件
数据结构
很多很多
- series:类似一维数组,有标签,索引。eg:a x\n b x\n c x\n d x\n,其中a,b,c,d就是索引
- DataFrame:二维,即有行与列也有列索引
- Panel:三维,有更多属性
Series
创建
pandas.Series(data,index,dtype,name,copy,fastpath)
"""
data:可以是数组和字典
index:索引值,要与数据长度相同
dtype:数据类型。一般得一样,不一样也不会报错,会混乱
"""
# 将数组/字典转换为Series
data = np.array(['a','b','c','d'])
s1 = pd.Series(data)
表现形式:索引在左边,值在右边,若无定义索引形式,会自动创建0-N-1
DataFrame
与Series类似,多一个columns列,copy,拷贝数据
data可为Series,数组,常量或类似列表的对象
指定索引与缺失值
若指定了列序列,列就会按照一定顺序排列
columns = ['A','B','C']
若传入的列在数据中找不到,就会生成NaN值
a = df3.drop(['a',axis = 0]) # 删除a行
b = df3.drop(['A',axis = 1]) # 删除A列
获取数据
- 通过索引,返回一个Series
A = df1["A"]
"""
0 1.0
1 1.0
2 1.0
3 1.0
Nane:A,dtype:float64
"""
返回的Series拥有原D F相同的索引
- ix和 iloc索引方式
ix:可通过行号和标签索引
iloc:只可通过行号
数据对齐
自动对齐时若有一个没有数据,则为NaN
映射
将函数应用到每一个行/列上
func = lanbda x:x.sum() # 求和
df.apply(func) # 将每列加起来
排序
对DF,可根据任意轴上的索引排序,默认升序,也可降序
f.sort_index(axis = 1,ascending = False)
# 根据一个列排序
f.sort_index(by = 'b')
# 根据多个列排序
f.sort_index(by = 'a','b')
# a列优先
DF常用操作
删行/列:df.drop()
合并:df1.append(df2)
还原索引:df.reset_index
(让索引变为数据中的一列)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具