pandas

简介: 使用pandas过程中出现的问题

使用pandas过程中出现的问题

[toc]

1.pandas无法读取excel文件:xlrd.biffh.XLRDError: Excel xlsx file; not supported

应该是xlrd版本太高
解决方法,使用openpyxl打开xlsx文件

df = pd.read_excel('鄱阳湖水文资料.xlsx',engine='openpyxl')

2、pandas索引问题

在Python pandas中,从0开始行列索引

3.pandas 时间序列之pd.date_range()

pd.date_range(
    start=None,#开始时间
    end=None,#截止时间
    periods=None,#总长度
    freq=None,#时间间隔
    tz=None,#时区
    normalize=False,#是否标准化到midnight
    name=None,#date名称
    closed=None,#首尾是否在内
    **kwargs,
)

生成的日期为年月日时分秒
1961/1/8 0:00:00

4.pandas中series与DataFrame区别

Series是带索引的一维数组
Series对象的两个重要属性是:index(索引)和value(数据值)
DataFrame的任意一行或者一列就是一个Series对象

创建Series对象:pd.Series(data,index=index)

  其中data可以是很多类型:

一个列表---------->pd.Series([1,2,3])
一个ndarray------->pd.Series(np.random.randint(2),index=['a','b'])
一个python字典---->pd.Series({"a":2,"b":0})
一个标量值-------->pd.Series(3,index=[1,2,3])

创建DataFrame对象:pd.DataFrame(data,index,columns)

与Series不同的是,DataFrame包括索引index和表头columns:

  其中data可以是很多类型:

包含列表、字典或者Series的字典
二维数组
一个Series对象
另一个DataFrame对象

5.dataframe保存进excel中多个sheet

    # 将日流量写入‘逐日流量’,将位置写入‘格网中的经纬度’
    writer = pd.ExcelWriter()
    df.to_excel(writer, sheet_name='逐日流量')
    df2.to_excel(writer, sheet_name='格网中的经纬度')
    writer.save()  # 后面可能有writer.close(),但实际不需要,save完后会自动关闭,加close反而会有警告提示。
    print(file + " over")

更新后出现的警告

FutureWarning: save is not part of the public API, usage can give unexpected results and will be removed in a future version

原因:

writer.save()接口已经私有化,close()里面有save()会自动调用,将writer.save()替换为writer.close()即可

更细致的操作:

可以添加更多的参数,比如:

dataframe.to_excel("文件.xlsx", index=False, header=None)

index=False,代表不会导出index,就是最左侧的那一列

header=None,代表不会导出第一行,也就是列头

读写文件注意

df.to_excel(writer, sheet_name='逐日流量', index=False)  # header = 0 不要最顶上一行

pandas生成日期去掉时分秒

import pandas as pd
import numpy as np

df = pd.DataFrame({
    "date":pd.date_range("20100102",periods=6),
    "age":np.arange(6)})
print(df)

df["date"] = df["date"].dt.date  #将date列中的日期转换为没有时分秒的日期
df.to_excel("dates.xlsx")

向pandas中插入数据

如果想忽略行索引插入,又不想缺失数据与添加NaN值,建议使用
df['column_name'].values得出的是ndarray类型的值,后面的操作就不会限制于索引了

# waterlevel_data_trainx.values是一维数组
new_df['新列名'] = waterlevel_data_trainx.values

A value is trying to be set on a copy of a slice from a DataFrame.Try using .loc[row_indexer,col_indexer] = value instead

问题:当向列表中增加一列时,需要先将变量复制一份,再添加才可以

a=a.copy()
a['column01']= column

pandas添加索引列名称

baidu.index.name = "列名称"

pandas删除数据

drop()或者del()drop()可以不会对原数据产生影响(可以调);del()会删除原始数据

drop()

一次删除多行或多列,比较灵活

DataFrame.drop(labels,axis=0,level=None,inplace=False,errors=’raise’)

删除特定的多列

# Import pandas package
import pandas as pd

# create a dictionary with five fields each
data = {
    'A': ['A1', 'A2', 'A3', 'A4', 'A5'],
    'B': ['B1', 'B2', 'B3', 'B4', 'B5'],
    'C': ['C1', 'C2', 'C3', 'C4', 'C5'],
    'D': ['D1', 'D2', 'D3', 'D4', 'D5'],
    'E': ['E1', 'E2', 'E3', 'E4', 'E5']}

# Convert the dictionary into DataFrame
df = pd.DataFrame(data)

# Remove two columns name is 'C' and 'D'
df.drop(['C', 'D'], axis=1)

# df.drop(columns =['C', 'D'])

根据列索引删除列

# Import pandas package
import pandas as pd

# create a dictionary with five fields each
data = {
   
   
    'A': ['A1', 'A2', 'A3', 'A4', 'A5'],
    'B': ['B1', 'B2', 'B3', 'B4', 'B5'],
    'C': ['C1', 'C2', 'C3', 'C4', 'C5'],
    'D': ['D1', 'D2', 'D3', 'D4', 'D5'],
    'E': ['E1', 'E2', 'E3', 'E4', 'E5']}
  python
# Convert the dictionary into DataFrame
df = pd.DataFrame(data)

# Remove three columns as index base
df.drop(df.columns[[0, 4, 2]], axis=1, inplace=True)  # 删除0 2 4三列

df

del()

一次只能删除一列

read_excel()

data = pd.read_excel(r"Result_Model.xlsx", sheet_name="prediction", engine='openpyxl', skiprows=1)  # 先用都昌运行前的数据测试一下,跳过第一行

也可以设置成跳过多行,跳过其他行等

参考博客

目录
相关文章
|
存储 数据库 OceanBase
想问一下OceanBase数据库这个的日志都能删除么?clog
是的,OceanBase数据库企业版确实支持performance_schema。performance_schema是一个集合了数据库服务器性能参数信息的数据字典,它能够帮助我们收集和存储数据库服务器的性能参数信息,以便于我们对数据库进行更好的优化和管理。
381 5
|
网络协议 Unix Linux
计算机网络 套接字函数 | socket、bind、listen、accept、connect
计算机网络 套接字函数 | socket、bind、listen、accept、connect
303 0
|
Python
Pandas 安装
10月更文挑战第26天
371 59
Pandas 安装
|
11月前
|
分布式计算 并行计算 数据处理
Pandas高级数据处理:并行计算
Pandas是Python中广泛使用的数据分析库,随着数据量增加,单线程处理速度成为瓶颈。本文介绍Pandas并行计算的基本概念、方法及常见问题的解决方案。并行计算通过多线程、多进程或分布式框架(如Dask)实现,充分利用多核CPU优势。文章详细解释了数据分割、内存占用和线程/进程间通信等问题,并提供了代码示例。最后总结了常见报错及其解决方法,帮助开发者提升数据处理效率。
464 3
|
11月前
|
开发框架 数据可视化 .NET
.NET 中管理 Web API 文档的两种方式
.NET 中管理 Web API 文档的两种方式
209 14
|
10月前
|
存储 人工智能 安全
人工智能管理体系解读(六)
ISO/IEC 42001:2023 是一项国际标准,旨在为组织建立、实施、维护和持续改进人工智能管理体系(AIMS)提供框架。该标准强调绩效评价的重要性,包括监视、测量、分析和评审,确保人工智能系统符合道德、法律及运行参数。通过内部审核和管理评审,组织可以识别改进机会,推动持续优化,确保与战略目标一致。认证有助于提升组织声誉,展示其对负责任的人工智能管理的承诺。
522 7
|
Python
pandas库明明安装成功了,为什么总是导入错误?
pandas库明明安装成功了,为什么总是导入错误?
1419 4
|
11月前
|
vr&ar 图形学 云计算
实时云渲染与虚拟现实的结合:推动3D设计行业向更广阔领域拓展
3D设计行业面临四大难题:渲染时间长、审批流程复杂、成本高且设备更新快、渲染时电脑无法处理其他工作。实时云渲染通过云端算力,提供快速便捷的渲染解决方案,支持多人协同审批,大幅降低硬件成本,提高工作效率。平行云作为国内领先的实时云渲染服务商,已在全球范围内服务上千家企业,涵盖教育培训、数字孪生、医疗健康等多领域,助力3D设计行业高效解决现有难题。
314 18
|
11月前
|
机器学习/深度学习 人工智能 数据可视化
《AI与鸿蒙Next:建筑设计可视化的革新力量》
在建筑设计领域,可视化至关重要。人工智能通过快速生成方案、优化材质与纹理、智能照明模拟及细节增强,极大提升了设计效率和质量。鸿蒙Next图形渲染技术则凭借强大的物理渲染引擎、超分与超帧技术、智慧美学构图和多设备协同渲染,使建筑效果更加逼真细腻。两者的结合不仅缩短了设计周期,还增强了沟通协作,拓展了设计创意边界,为建筑设计行业带来了前所未有的变革与机遇。
229 4
|
监控 搜索推荐 数据安全/隐私保护
深入探索iOS 14的隐私保护功能
本文将深入探讨iOS 14操作系统中的隐私保护功能,包括新的隐私指示器、应用程序跟踪透明度以及增强的隐私设置。我们将分析这些功能如何提高用户对个人数据的控制权,并讨论它们对应用开发者和广告行业的影响。
416 28