前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Pandas 中三个对列转换的小操作

Pandas 中三个对列转换的小操作

作者头像
触摸壹缕阳光
发布2022-04-27 17:30:01
1.1K0
发布2022-04-27 17:30:01
举报

前言

本文主要介绍三个对列转换的小操作:

  • split 按分隔符将列分割成多个列
  • astype 转换列为其它类型
  • 将对应列上的字符转换为大写或小写

创建 DataFrame

首先,导入 Pandas 模块,通过传入字典的方式创建 DataFrame。

代码语言:javascript
复制
import pandas as pd

mydict = {
    "dev_id": ["001", "002", "003", "004"],
    "name": ["John Hunter", "Lothar Muller", "John Doe", "Elon Brown"],
    "age": [21, 33, 12, 40],
    "salary": [10000, 5000, 12000, 3000],
    "country": ["Gramany", "Germany", "United States", "Scotland"]
}

df_dev = pd.DataFrame(mydict)
df_dev.set_index("dev_id", inplace = True)
df_dev
代码语言:javascript
复制
df_dev.set_index("dev_id", inplace = True)
  • 使用 df_dev 中已经存在的列来创建 df_dev 的索引;
  • "dev_id" 为索引命名;
  • inplcae = True 为原地操作,也就是说此次修改不会创建新的对象。

split 按分隔符将列分割成多个列

现在我们想要将 name 列划分成两个列,其中一个列为 first_name,另外一个列为 last_name。比如:John Hunter,他的 first_name 为 John,last_name 为 Hunter。

我们可以使用 split 函数来实现上述功能。

代码语言:javascript
复制
df_new = df_dev["name"].str.split(" ", n = 1, expand = True)
df_dev.insert(0, "first_name", df_new[0])
df_dev.insert(1, "last_name", df_new[1])
df_dev.drop(columns = ["name"], inplace = True)
df_dev
代码语言:javascript
复制
df_dev["name"].str.split(" ", n = 1, expand = True)
  • split 函数是 Series 的操作,全名为 Series.str.split,它可以根据给定的分隔符对 Series 对象进行划分;
  • " " 按照空格划分,我们可以传入字符串或者正则表达式,如果不指定则按照空格进行划分;
  • n = 1 分割数量,如果指定为 None, 0 或 -1 则返回所有分割。比如对于 "I am KangChen."
    • n = -1,则会返回 I, am, KangChen.
    • n = 1,则会返回 I, am KangChen.
    • n = 2,则会但会 I, am, KangChen.
  • expand = True 将分割的字符串转换为单独的列,指定 True 则返回 DataFrame/MultiIndex,如果指定 False 则返回 Series/Index。

astype 转换列为其它类型

我们可以使用 astype() 将 age 列转换为字符串类型,将 salary 列转换为浮点型。

代码语言:javascript
复制
df_dev['age'] = df_dev['age'].astype(str)
df_dev['salary'] = df_dev['salary'].astype(float)
df_dev

将对应列上的字符转换为大写或小写

代码语言:javascript
复制
df_dev['country'] = df_dev['country'].str.upper()
df_dev
代码语言:javascript
复制
df_dev['country'] = df_dev['country'].str.lower()
df_dev

References:https://www.instagram.com/p/CcqDtlpjT8_/

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-04-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI机器学习与深度学习算法 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
    • 创建 DataFrame
      • split 按分隔符将列分割成多个列
        • astype 转换列为其它类型
          • 将对应列上的字符转换为大写或小写
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档