pandas 简单的 excel 处理
pandas Excel简单的操作
读写excel,csv
a.xlsx
Title | name | age | Time |
---|---|---|---|
ti1 | wang | 23 | 2021/2/2 22:24 |
ti2 | zhang | 33 | 2021/2/2 22:24 |
示例:
import pandas as pd
# 读取excel时,会将第一行数据,当作列名
df = pd.read_excel('../a.xlsx')
df2 = pd.read_csv('../a.csv')
# 打印时,左侧会多一列数字,是自动生成的索引
print(df)
# 写入excel
df.to_excel('b.xlsx', index=False)
df.to_csv('b.csv',index=False)
打印结果:
Title name age Time
0 ti1 wang 23 2021-02-02 22:24:00
1 ti2 zhang 33 2021-02-02 22:24:00
数据维度:数据有几行几列
# 查看数据的维度:几行几列
row,col = df.shape
print(row,col) # 2 4;即2行4列
数据排序
# 按照 Title列升序,name列降序,进行排序
df = df.sort_values(by=["Title","name"],ascending=[True,False])
# 重置索引,有需要的话可以重置一下,因为排序完成后,索引也被打乱了
df.index = list(range(df.shape[0]))
获取某列数据
# 通过df[列名],可以获取某列的数据
col1 = df["Title"]
print(col1)
结果:
0 ti1
1 ti2
遍历,赋值,判断是否为空
# 遍历某列数据;iat 可以获取某个位置的数据
for i in range(df["Title"].shape[0]): # shape[0]也就是行数
print(df["Title"].iat[i])
# 给某个位置赋值
df['Title'].iat[i] = 1
# 判断某个数据是否为空值: pd.isna()
if pd.isna(df["Title"].iat[i]):
print("This item is None.")
数据类型转换
# 将某列转换成时间格式
df["Time"] = pd.to_datetime(df["Time"])
# 将某列转换成字符串
df["age"] = df["age"].astype(str)
数据去重
# 获取某列不重复的值
print(df["Title"].unique())
过滤筛选
# 过滤数据,过滤 Title 为 ti1 的所有数据行
print(df[df["Title"] == "ti1"])
手动生成数据,写入excel
data = {
"Name":["wang","zhang"], # 键值对,键作为列名,会写入excel第一行,值作为每行的数据
"age":[22,23]
}
df = pd.DataFrame(data=data)
df.to_excel('b.xlsx',index=False)
生成的:b.xlsx
Name | age |
---|---|
wang | 22 |
zhang | 23 |
分类:
python
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构