使用pandas处理csv并转为张量

使用pandas处理csv并转为张量

基本读取

需要先通过命令安装 pandas 包:

python 复制代码
pip install pandas

然后通过以下方式,向文件中写入简单的 csv 格式数据:

python 复制代码
import os

os.makedirs(os.path.join(".","data"),exist_ok=True)
data_file=os.path.join(".","data","stock.csv")
with open(data_file,"w") as f:
    f.write('name,price,date\n')
    f.write('aaa,12.4,0813\n')
    f.write('bbb,NaN,0812\n')
    f.write('NaN,NaN,0811\n')
    f.write('NaN,31,0810\n')

通过 read_csv 函数读取:

python 复制代码
import os
import pandas as pd

os.makedirs(os.path.join(".","data"),exist_ok=True)
data_file=os.path.join(".","data","stock.csv")


data=pd.read_csv(data_file)
print(data)
#   name  price  date
# 0  aaa   12.4   813
# 1  bbb    NaN   812
# 2  NaN    NaN   811
# 3  NaN   31.0   810

数据处理

price 列中包含 NaN 值,我们可以将其填充为该列的平均值:

python 复制代码
data_me=data.fillna(data.mean(numeric_only=True))
# (12.4+31.0)/2=21.7
print(data_me)
#   name  price  date
# 0  aaa   12.4   813
# 1  bbb   21.7   812
# 2  NaN   21.7   811
# 3  NaN   31.0   810

name 列包含 aaabbbNaN 三种值,我们可以将其每种值拆成单独一列,并赋一个值:

python 复制代码
data_me=pd.get_dummies(data_me,dummy_na=True)
print(data_me)
#    price  date  name_aaa  name_bbb  name_nan
# 0   12.4   813      True     False     False
# 1   21.7   812     False      True     False
# 2   21.7   811     False     False      True
# 3   31.0   810     False     False      True

然后我们便可以通过 torch 包,来将这个数据转换成多维数组:

python 复制代码
import torch

x=torch.tensor(data_me.to_numpy(dtype=float))
print(x)
# tensor([[ 12.4000, 813.0000,   1.0000,   0.0000,   0.0000],
#         [ 21.7000, 812.0000,   0.0000,   1.0000,   0.0000],
#         [ 21.7000, 811.0000,   0.0000,   0.0000,   1.0000],
#         [ 31.0000, 810.0000,   0.0000,   0.0000,   1.0000]],
#        dtype=torch.float64)

相关推荐
我不会起名字3221 分钟前
一天一道算法题(35):电话号码的字母组合
java·数据结构·后端·python·leetcode·go·回溯
冯一川2 分钟前
DeepSeek在Windows系统上部署
windows·python
小叶肥辉5 分钟前
LangChain链和LangGraph图的学习笔记【六】——提示语模板(3)——Few-Shot Prompting(少样本提示) 模板类
笔记·python·学习·langchain·prompt·aigc
for_ever_love__15 分钟前
爬虫项目: 获取高分电影的数据总结
开发语言·python·学习
文人sec17 分钟前
MYSQL:insert...select:为什么锁源表的所有行和间隙?怎么最快地复制一张表?
数据库·python·mysql
SamChan9041 分钟前
PyMuPDF vs pdfplumber vs pypdf:PDF 文本提取实测对比(翻译预处理视角)
python·ai·pdf
计算机编程-吉哥1 小时前
深度学习:我用YOLO11-L做了一个水下垃圾检测系统 对比YOLOv8-L/Faster R-CNN【计算机毕业设计选题推荐】
人工智能·深度学习·yolo·课程设计·计算机毕业设计选题
辰辉创聚1 小时前
炎症与免疫相关细胞因子:信号通路、分类及科研检测应用
python·oracle·nycodenz·重组il-6蛋白·抗tnf-α抗体·il-1β蛋白
ai小陈1 小时前
LTX2.5音视频生成任务验收实战:批量记录与音画质量检查
人工智能·python·深度学习·ai·音视频·gpu算力
今儿敲了吗1 小时前
04英文文本关键词提取(TF-IDF)
笔记·python