使用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 列包含 aaa 、 bbb 、 NaN 三种值,我们可以将其每种值拆成单独一列,并赋一个值:

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)

​

相关推荐
破茧蝴蝶1 小时前
Python分布式爬虫完整教程
开发语言·python
benchmark_cc1 小时前
量化系统架构设计:为什么应该将数据获取与策略逻辑解耦?
python·数据分析·pandas·量化交易·股票数据·quantdash
燧机科技SuiJi1 小时前
山体坍塌落石滑坡泥石流监测系统 落石泥石流监控摄像机
大数据·人工智能·深度学习·yolo
凤山老林1 小时前
Spring Boot 启动冲刺:耗时剖析、懒加载策略与事件驱动初始化优化
spring boot·后端·python
小白快快跑哦2 小时前
python-字符串全解(六):正则表达式-逻辑运算或
python·正则表达式·字符串·逻辑运算
Thinker QAQ2 小时前
并发编程(九):BlockingQueue 与 Channel——语言层的原子性、可见性与有序性
java·python·go·并发编程·channel·blockingqueue·message passing
道满科技2 小时前
Function Calling 参数总出错?只修参数就行
linux·windows·python
霸道流氓气质3 小时前
RAG 可观测性与生产监控实战:四层遥测模型、五大仪表盘与 OpenTelemetry 全链路追踪的 Java 生产级实现
java·人工智能·python
商业白皮书5 小时前
人形机器人公司打算依托云端 GPU 资源扩充模型训练规模
人工智能·深度学习·机器人
ch6235 小时前
《AI 辅助编程实战:从零跑通一个 Excel 报表生成脚本的踩坑与复盘》
人工智能·python