本文主要介绍三个对列转换的小操作:
split
按分隔符将列分割成多个列astype
转换列为其它类型首先,导入 Pandas 模块,通过传入字典的方式创建 DataFrame。
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
df_dev.set_index("dev_id", inplace = True)
"dev_id"
为索引命名;inplcae = True
为原地操作,也就是说此次修改不会创建新的对象。现在我们想要将 name 列划分成两个列,其中一个列为 first_name,另外一个列为 last_name。比如:John Hunter,他的 first_name 为 John,last_name 为 Hunter。
我们可以使用 split
函数来实现上述功能。
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
df_dev["name"].str.split(" ", n = 1, expand = True)
" "
按照空格划分,我们可以传入字符串或者正则表达式,如果不指定则按照空格进行划分;n = 1
分割数量,如果指定为 None, 0 或 -1 则返回所有分割。比如对于 "I am KangChen."expand = True
将分割的字符串转换为单独的列,指定 True 则返回 DataFrame/MultiIndex,如果指定 False 则返回 Series/Index。我们可以使用 astype()
将 age 列转换为字符串类型,将 salary 列转换为浮点型。
df_dev['age'] = df_dev['age'].astype(str)
df_dev['salary'] = df_dev['salary'].astype(float)
df_dev
df_dev['country'] = df_dev['country'].str.upper()
df_dev
df_dev['country'] = df_dev['country'].str.lower()
df_dev
References:https://www.instagram.com/p/CcqDtlpjT8_/
本文分享自 AI机器学习与深度学习算法 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!