听说你还在不停的粘贴复制?Python用1秒实现excel列合并

一、了解需求

excel数据如下,而需求就是将 版型、变速箱、环保标准 三列进行 合并,并将合并结果添加到 新列—— 备注列中。

听说你还在不停的粘贴复制?Python用1秒实现excel列合并
而会玩 Python的老amy一想,这还不简单?直接使用 pandas完成。

; 二、代码实现

  • 读取 excel 数据
df = pd.read_excel("111.xls")
df

听说你还在不停的粘贴复制?Python用1秒实现excel列合并
  • 查看数据信息
查看大概信息
df.info()

听说你还在不停的粘贴复制?Python用1秒实现excel列合并
  • 得知每列数据的类型为 object类型,则 获取每列直接 相加即可。
df_2 = df["版型"] + df["变速箱"] + df["环保标准"]
df_2

听说你还在不停的粘贴复制?Python用1秒实现excel列合并
大家会发现直接这样合并有一个小小的问题,也就是如第3行中 2021款 E-Tense 左岸版 + NaN + NaN 竟然结果为 NaN。oh no!这不是我们想要的结果。

奥改咯?(怎么解决呢)

三、问题来源

我们就得清楚的知道问题的出处。

1.必要条件

  • np.nan为浮点类型
  • np.nan + 任何值 = np.nan

由此就可以理解为什么上面会出现 2021款 E-Tense 左岸版 + NaN + NaN 结果为 NaN了。

当然,肯定会有的朋友认为 object 类型不是 文本字符串嘛?为什么 结果反而是进行了 加法运算呢?

那就得好好聊聊 object 了。

2.object类型到底为何方妖怪?

PythonstrNumpy 中的 StringUnicode,在 Pandas 中都表示为 object,也就是字符串在 Pandas 中的类型为 object

这个跟大家的理解基本一致。但是需要注意的是,当一列数据 不止一种数据类型组成时(如:同时出现 np.nan 、字符串等), Pandas 就很难自动甄别数据类型,所以就会默认处理为 兼容性更强的类型——object

此时,大家就应该恍然大悟:”原来 object不是那么纯粹的文本数据类型呀”。

四、解决

那我们的解决方案就是将 np.nan 变为 文本数据类型即可。

代码如下:

df["备注"] = df["版型"].map(str) + df["变速箱"].map(str) + df["环保标准"].map(str)
df

听说你还在不停的粘贴复制?Python用1秒实现excel列合并
当然我们如果想去除文本中的 nan,通过以下代码即可实现。
df["备注"] = df["备注"].str.replace("nannan","")
df

听说你还在不停的粘贴复制?Python用1秒实现excel列合并

Original: https://blog.csdn.net/weixin_44352981/article/details/120675324
Author: 老Amy
Title: 听说你还在不停的粘贴复制?Python用1秒实现excel列合并

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/739457/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球