使用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)

​

相关推荐
qq_158895411113 小时前
AI 音乐生成完成后,音频 URL 为什么会过期?一套可恢复的交付方案
python·api·ai音乐
Warson_L5 小时前
高性能架构设计
python·go
databook6 小时前
新数据到手,先跑哪几步检查
python·数据分析
严肃小白兔6 小时前
第 02/24 期:从线性模型到多层感知机:神经网络的表示能力
人工智能·深度学习·神经网络
czq_26867194876 小时前
Python打卡第46天
开发语言·python
Flynt7 小时前
日涨4000星的OSINT工具,我拿Linus的用户名和一个随机字符串实测了一遍
python·安全
曲径海盗10 小时前
【Python 学习第 53 天】列表基础
python·学习笔记·编程入门
Dumbness10 小时前
群里 @ 机器人发"查订单",指令一条都没命中:微信群机器人在路由前漏掉的几步归一化
python·微信
用户16148409554510 小时前
用 M4 Pro 跑羽毛球视频 AI 分析(二):TrackNet MPS 加速 3.2 倍、卡尔曼滤波补漏与自动回合剪辑
python
用户40199255686111 小时前
基于对话树回溯的社媒评论流买方意图识别与噪音过滤实践
python