pandas concat 用 NaN 填充非对齐索引

2023-11-21

Problem

我连接了两个 int 类型系列,而我返回的数据帧是 float 类型。发生这种情况是因为该系列的索引未对齐,并且当发生串联时,pandas 用 NaN 填充空白。然而,NaN 被认为是浮点数,不幸的是,我的所有整数都随之转换为浮点数。

Question

我的问题是,如何用其他不会将整数转换为浮点数的东西来填补空白?

MCV

import pandas as pd

s1 = pd.Series([1], index=['A'])
s2 = pd.Series([1], index=['B'])

print "s1 type: {} | s2 type: {}\n".format(s1.dtype, s2.dtype)

df = pd.concat([s1, s2], axis=1)
print df, "\n"
print df.dtypes

Prints:

s1 type: int64 | s2 type: int64

     0    1
A  1.0  NaN
B  NaN  1.0 

0    float64
1    float64
dtype: object

首先是dtype转换是由于NaN不能用整数表示,所以float选择了数据类型。

其次,当这种情况发生时,这将成为个人选择,这取决于你,没有正确的选择。

例如我们可以使用fillna具有任意值,例如0 or -1然后我们可以使用astype(int):

In [21]:
df.fillna(0).astype(int)

Out[21]:
   0  1
A  1  0
B  0  1

但这可能不是您想要的,您可能决定使用以下方法删除这些行dropna但这可能意味着您会丢失有价值的信息,如果您正在进行某种机器学习或其他分析,这些信息可能至关重要。

因此,您可能决定将这些列/行设置为最小值/最大值/平均值或中值,但如果列值依赖于其他列,这可能会产生严重后果,例如我们将所有缺失值设置为最小值/max 但该值会在预测模型丢失时产生偏差熵/信息因为如果您有大量缺失值,那么您的数据就会偏向最小值/最大值。就我个人而言,在这些情况下,我发现 Mean 工作得很好。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

pandas concat 用 NaN 填充非对齐索引 的相关文章

随机推荐

  • 什么时候 dispose 方法不会被调用?

    我正在读书this前几天的文章 我想知道为什么有 Finalizer 和 Dispose 方法 我读here关于为什么您可能想要将 Dispose 添加到 Finalizer 中 我好奇的是 什么时候 Finalizer 会通过 Dispo
  • JSX 元素中带有 withStyles 的通用类型参数

    在 React with Material ui 中 我尝试创建一个接受通用参数并使用withStylesHOC 注入我的风格 第一种方法是这样的 const styles theme Theme gt createStyles card
  • 使用单个语句分配整个数组

    假设我声明并初始化 int a 3 1 2 3 以后如何才能一次性分配整个数组呢 IE a 3 2 1 如果您的 C 编译器支持复合文字 您可以使用memcpy memcpy a int 3 2 1 sizeof a 如果您不打算在其中添加
  • 如何使 flatpickr datepicker 在 livewire / alpinejs 应用程序中具有反应性?

    在我的 laravel 7 livewire 1 3 alpinejs 2 项目中 我添加了 flatpickr datepicker 从https flatpickr js orgdatepicker 工作正常 但反应式不起作用 在下面的
  • 使用 Javascript(或 Angular)在每个部分上组合具有不同 Content-Type 的 multipart/form-data

    问错了问题 请参阅下面的更新 我需要将我的 AngularJS 项目与现有的 RESTful API 集成 这些 API 使用 POST 请求upload a file 并在请求中提交表单数据 不幸的是 其中一个表单输入需要位于Conten
  • GCP:您没有足够的权限通过 SSH 连接到此实例

    我在一个 GCP 项目上拥有一个 非管理员 帐户 当我启动 Dataproc 集群时 GCP 会启动 3 个虚拟机 当我尝试通过以下方式访问其中一台虚拟机时SSH 在浏览器中 我收到以下错误 我尝试添加推荐权限 但无法添加iam servi
  • 使用 jQuery / Phonegap 进行 Soap 查询在 Android 上总是失败

    我使用 jQuery mobile 和 Phonegap 现在的 Cordova 开发了一个 iPhone Android 应用程序 这个应用程序使用不同的服务没有问题 其中一项服务是 Soap 服务 因此我使用 jQuery 的 jsSO
  • 如何在运行批处理文件时不打开Cmd窗口

    我编写的每个批处理文件都会打开一个 Cmd 窗口并使其保持打开状态 直到程序完成 要在 bat 文件中包含什么命令字符串才能不打开 CMD 窗口或打开它并立即隐藏它 我必须留在 MSW7 Pro 内置编程的范围内 现在 我只是使用 msg
  • 串口二进制传输变回车

    上周我一直在尝试用 C 实现一个原始的串行文件传输协议 我遇到了一个非常奇怪的问题 我似乎无法在网上找到解决方案 我已经设法通过串行端口传输二进制数据并接收它 但在此过程中 所有 0D 字节都转换为 0A 以下是我的代码 include
  • 遗传算法中防止近亲繁殖和单一栽培(新手问题)

    我正在写一个遗传算法 我的人口很快就形成了单一文化 我使用的是具有少量离散基因 每个个体 24 个基因 的小群体 32 个个体 和单点交叉交配方法 将其与轮盘赌选择策略结合起来 很容易看出所有遗传多样性是如何在短短几十代内消失的 我想知道的
  • 使用导航抽屉保存片段状态

    我想在使用 android 导航抽屉切换片段时保存片段的状态 如果之前已加载过该片段 则不应刷新该片段 是否可以 要保持片段的状态 您必须调用setRetainInstance true 片段内的onCreate 它能做什么 控制fragm
  • $route.reload() 不适用于 ui-router

    我已经切换到用户界面路由器 一切都很顺利 除了一件事 在我的页面上 我有一个可以更改应用程序上下文的选择 无论如何 以前 当这个上下文改变时 我正在执行这段代码 特别是 set方法 use strict angular module mai
  • Firebase 10.0.:InternalFirebaseAuth.FIREBASE_AUTH_API 在此设备上不可用

    我正在使用 Firebase 身份验证 使用 Google 帐户 开发 Android 应用程序 最近每次尝试连接时都会遇到以下异常 com google firebase FirebaseApiNotAvailableException
  • 使用 DOS 或 BIOS 显示字符

    翻翻拉尔夫 布朗的中断列表 我发现有很多不同的方法可以将文本字符输出到屏幕上 ROM BIOS API 提供以下功能 AH 09h 在光标位置写入字符和属性 AH 0Ah 仅在光标位置写入字符 AH 0Eh 电传打字机输出 AH 13h 写
  • 如何使用 MySQL 函数按属性删除 JSON 数组中的对象?

    假设存储在 MySQL 中的以下 JSONjson数据类型 users group manager userID a123 group employee userID a456 如何删除用户对象 userID a456 不知道它在数组中的位
  • MaxExpansionDepth 与最新的 webapi 和微风

    我最近将所有 nuget 包更新为 EF6 的最新版本 breeze 1 4 5 system web http odata 5 0 0 0 以及所有其他可用的好东西 现在 对于包含 x y z 这样的扩展的一个查询 我收到如下错误 A f
  • 哪里可以下载JMXMP?

    我想使用 VisualVM 通过 JMX 远程分析 Java 应用程序 由于它是经过 NAT 和防火墙保护的 EC2 实例 因此我无法使用默认的 RMI 方法 而需要使用必须首先下载的可选 JMXMP 扩展 注意 如果您想使用 JMXMP
  • 如何在不重新启动服务器的情况下停止 Jenkins 上不可阻挡的僵尸作业?

    我们的 Jenkins 服务器有一个作业已经运行了三天 但没有做任何事情 单击角落里的小 X 不会执行任何操作 控制台输出日志也不会显示任何内容 我检查了我们的构建服务器 该作业实际上似乎根本没有运行 有没有办法通过编辑某些文件或锁定或其他
  • ASP.NET 中的两种方式数据绑定

    假设我们有一个对象 class Entity public string ID get set public string Name get set 我想将属性绑定到页面上的两个文本框 如下所示
  • pandas concat 用 NaN 填充非对齐索引

    Problem 我连接了两个 int 类型系列 而我返回的数据帧是 float 类型 发生这种情况是因为该系列的索引未对齐 并且当发生串联时 pandas 用 NaN 填充空白 然而 NaN 被认为是浮点数 不幸的是 我的所有整数都随之转换