当前位置: 首页 > news >正文

在报错中学python something

这里写目录标题

    • 动手学深度学习pandas完整代码
    • 数据处理
      • TypeError: can only concatenate str (not "int") to str(fillna填补缺失值)
    • 创建文件夹
    • 学习这个数据分组
    • get_dummies实现one hot encode

动手学深度学习pandas完整代码

import osimport numpy as np
import pandas as pd
import torch
from numpy import nan as NaNos.makedirs(os.path.join('..', 'data'), exist_ok=True)  # 在上级目录创建data文件夹
datafile = os.path.join('..', 'data', 'house_tiny.csv')  # 创建文件
with open(datafile, 'w') as f:  # 往文件中写数据f.write('NumRooms,Alley,Price\n')  # 列名f.write('NA,Pave,127500\n')  # 第1行的值f.write('2,NA,106000\n')  # 第2行的值f.write('4,NA,178100\n')  # 第3行的值f.write('NA,NA,140000\n')  # 第4行的值data = pd.read_csv(datafile)  # 可以看到原始表格中的空值NA被识别成了NaN
print('1.原始数据:\n', data)inputs, outputs = data.iloc[:, 0: 2], data.iloc[:, 2]
# inputs = inputs.fillna(inputs.mean())  # 用均值填充NaN
# inputs = inputs.fillna(66)  # 用均值填充NaN
#在mean()括号里面加入numeric_only=Ture
inputs = inputs.fillna(inputs.mean(numeric_only=True))
print(inputs)
print(outputs)
# 利用pandas中的get_dummies函数来处理离散值或者类别值。
# [对于 inputs 中的类别值或离散值,我们将 “NaN” 视为一个类别。] 由于 “Alley”列只接受两种类型的类别值 “Pave” 和 “NaN”
inputs = pd.get_dummies(inputs, dummy_na=True)
print('2.利用pandas中的get_dummies函数处理:\n', inputs)# x, y = torch.tensor(inputs.values), torch.tensor(outputs.values)报错!!!x = torch.tensor(inputs.to_numpy(dtype=float))
y = torch.tensor(outputs.to_numpy(dtype=float))
print('3.转换为张量:')
print(x)
print(y)# 扩展填充函数fillna的用法
df1 = pd.DataFrame([[1, 2, 3], [NaN, NaN, 2], [NaN, NaN, NaN], [8, 8, NaN]])  # 创建初始数据
print('4.函数fillna的用法:')
print(df1)
print(df1.fillna(100))  # 用常数填充 ,默认不会修改原对象
print(df1.fillna({0: 10, 1: 20, 2: 30}))  # 通过字典填充不同的常数,默认不会修改原对象
print(df1.fillna(method='ffill'))  # 用前面的值来填充
# print(df1.fillna(0, inplace=True))  # inplace= True直接修改原对象df2 = pd.DataFrame(np.random.randint(0, 10, (5, 5)))  # 随机创建一个5*5
df2.iloc[1:4, 3] = NaN
df2.iloc[2:4, 4] = NaN  # 指定的索引处插入值
print(df2)
print(df2.fillna(method='bfill', limit=2))  # 限制填充个数
print(df2.fillna(method="ffill", limit=1, axis=1))  #

数据处理

TypeError: can only concatenate str (not “int”) to str(fillna填补缺失值)

不能让字符串 和int 值 连接
这里报错不是简单的连接,是因为mean函数的,求mean的对象中有整数也有字符串

解决方法

#在mean()括号里面加入numeric_only=Ture
inputs = inputs.fillna(inputs.mean(numeric_only=True))
import osimport numpy as np
import pandas as pd
import torch
from numpy import nan as NaNos.makedirs(os.path.join('..', 'data'), exist_ok=True)  # 在上级目录创建data文件夹
datafile = os.path.join('..', 'data', 'house_tiny.csv')  # 创建文件
with open(datafile, 'w') as f:  # 往文件中写数据f.write('NumRooms,Alley,Price\n')  # 列名f.write('NA,Pave,127500\n')  # 第1行的值f.write('2,NA,106000\n')  # 第2行的值f.write('4,NA,178100\n')  # 第3行的值f.write('NA,NA,140000\n')  # 第4行的值data = pd.read_csv(datafile)  # 可以看到原始表格中的空值NA被识别成了NaN
print('1.原始数据:\n', data)inputs, outputs = data.iloc[:, 0: 2], data.iloc[:, 2]
inputs = inputs.fillna(inputs.mean())  # 用均值填充NaN
print(inputs)
print(outputs)

在这里插入图片描述

创建文件夹

在上级目录创建data文件夹,记得找到上级目录的data再删

os.makedirs(os.path.join('..', 'data'), exist_ok=True)  # 在上级目录创建data文件夹
datafile = os.path.join('..', 'data', 'house_tiny.csv')  # 创建文件

1.1 os.makedirs(path, mode=0o777) 方法:用于递归创建目录。

path – 需要递归创建的目录,可以是相对或者绝对路径。。
mode – 权限模式。
无返回值
1.2 os.path.join()函数:连接两个或更多的路径名组件

  • 如果各组件名首字母不包含’/’,则函数会自动加上
  • 如果有一个组件是一个绝对路径,则在它之前的所有组件均会被舍弃
  • 如果最后一个组件为空,则生成的路径以一个’/’分隔符结尾

学习这个数据分组

get_dummies实现one hot encode

get_dummies方法可以把把 离散的类别信息转化为onehot编码形式,
dummy_na=True意为是否把nan单独看做一个类别。

get_dummies
是利用pandas实现one hot encode的方式

pandas.get_dummies(data, prefix=None, prefix_sep='_', dummy_na=False, columns=None, sparse=False, drop_first=False) 
import pandas as pd
df = pd.DataFrame([  ['green' , 'A'],   ['red'   , 'B'],   ['blue'  , 'A']])  df.columns = ['color',  'class'] 
pd.get_dummies(df) 

在这里插入图片描述
对每个类别的值都进行0-1编码

在这里插入图片描述
上述执行完以后再打印df 出来的还是get_dummies 前的图,因为你没有写,赋值

df = pd.get_dummies(df)

可以对指定列进行get_dummies

pd.get_dummies(df.color)

在这里插入图片描述
将指定列进行get_dummies 后合并到元数据中

df = df.join(pd.get_dummies(df.color))

在这里插入图片描述

http://www.lryc.cn/news/228471.html

相关文章:

  • 如何调用 DBMS_DISKGROUP 对 ASM 文件进行随机读取
  • UART学习
  • 洗地机哪个牌子最好用?洗地机品牌排行榜
  • 国际阿里云:Windows实例中数据恢复教程!!!
  • 浅谈二叉树
  • (二) 用QWebSocket 实现服务端和客户端(详细代码直接使用)
  • 关于我在配置zookeeper出现,启动成功,进程存在,但是查看状态却没有出现Mode:xxxxx的问题和我的解决方案
  • react及相关面试问题汇总
  • QT4到QT5移植出现的一些问题
  • 【可解释AI】Alibi explain: 解释机器学习模型的算法
  • No191.精选前端面试题,享受每天的挑战和学习
  • ROS基础—vscode创建工作空间
  • 机器学习复习(待更新)
  • taro(踩坑) npm run dev:weapp 微信小程序开发者工具预览报错
  • 3. 深度学习——损失函数
  • 交叉编译 openssl
  • C++文件的读取和写入
  • 住宅IP、家庭宽带IP以及原生IP,它们有什么区别?谷歌开发者账号应选择哪种IP?
  • Linux内核分析(十三)--内存管理之I/O交换与性能调优
  • 前端使用webscoket
  • centos安装Git
  • 网络编程 初探windows编程
  • Vue3 ref函数和reactive函数
  • docker常用命令详解
  • 采集Prestashop独立站采集Prestashop独立站
  • 2023.11-9 hive数据仓库,概念,架构,元数据管理模式
  • MFC 简单绘图与文本编辑
  • C# 中的 SerialPort
  • 2022年06月 Python(五级)真题解析#中国电子学会#全国青少年软件编程等级考试
  • YOLO图像识别