在 pandas 的 dataframe 中合并两列文本
有时,使用数据集时,你需要组合两列或更多列以形成一列。例如,你有一个数据集,其中名字和姓氏以列分隔,现在你需要全名列。下面列出了完成此任务的不同方法。
在以下各节中,我们将使用相同的 dataframe
,如下所示:
import pandas as pd
data = [["ali", "azmat", "30"], ["sharukh", "khan", "40"], ["linus", "torvalds", "70"]]
df = pd.dataframe(data, columns=["first", "last", "age"])
print(df)
输出:
first last age
0 ali azmat 30
1 sharukh khan 40
2 linus torvalds 70
运算符方法
仅当你要合并相同数据类型的数据时,才使用
运算符。
import pandas as pd
data = [["ali", "azmat", "30"], ["sharukh", "khan", "40"], ["linus", "torvalds", "70"]]
df = pd.dataframe(data, columns=["first", "last", "age"])
df["full name"] = df["first"] " " df["last"]
print(df)
输出:
first last age full name
0 ali azmat 30 ali azmat
1 sharukh khan 40 sharukh khan
2 linus torvalds 70 linus torvalds
df.map()
方法
你还可以使用 df.map()
函数合并两列的文本。
import pandas as pd
data = [["ali", "azmat", "30"], ["sharukh", "khan", "40"], ["linus", "torvalds", "70"]]
df = pd.dataframe(data, columns=["first", "last", "age"])
df["full name"] = df["first"].map(str) " " df["last"]
print(df)
输出:
first last age full name
0 ali azmat 30 ali azmat
1 sharukh khan 40 sharukh khan
2 linus torvalds 70 linus torvalds
df.apply()
方法
join()
函数也用于连接字符串。我们可以使用 df.apply()
函数将其应用于我们的 dataframe.df.apply()
函数用于在特定轴上应用另一个函数。
import pandas as pd
data = [["ali", "azmat", "30"], ["sharukh", "khan", "40"], ["linus", "torvalds", "70"]]
df["full name"] = df[["first", "last"]].apply(" ".join, axis=1)
print(df)
输出:
first last age full name
0 ali azmat 30 ali azmat
1 sharukh khan 40 sharukh khan
2 linus torvalds 70 linus torvalds
series.str.cat()
方法
我们也可以使用 series.str.cat()
方法将 series
/ index
中的字符串与给定的分隔符连接起来。
import pandas as pd
data = [["ali", "azmat", "30"], ["sharukh", "khan", "40"], ["linus", "torvalds", "70"]]
df["full name"] = df["first"].str.cat(df["last"], sep=" ")
print(df)
输出:
first last age full name
0 ali azmat 30 ali azmat
1 sharukh khan 40 sharukh khan
2 linus torvalds 70 linus torvalds
df.agg()
方法
与 df.apply()
相同,此方法还用于在指定轴上应用特定函数。
import pandas as pd
data = [["ali", "azmat", "30"], ["sharukh", "khan", "40"], ["linus", "torvalds", "70"]]
df["full name"] = df[["first", "last"]].agg(" ".join, axis=1)
print(df)
输出:
first last age full name
0 ali azmat 30 ali azmat
1 sharukh khan 40 sharukh khan
2 linus torvalds 70 linus torvalds
转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处
本文地址:
相关文章
pandas dataframe dataframe.shift() 函数
发布时间:2024/04/24 浏览次数:133 分类:python
-
dataframe.shift() 函数是将 dataframe 的索引按指定的周期数进行移位。
python pandas.pivot_table() 函数
发布时间:2024/04/24 浏览次数:82 分类:python
-
python pandas pivot_table()函数通过对数据进行汇总,避免了数据的重复。
pandas read_csv()函数
发布时间:2024/04/24 浏览次数:254 分类:python
-
pandas read_csv()函数将指定的逗号分隔值(csv)文件读取到 dataframe 中。
pandas 多列合并
发布时间:2024/04/24 浏览次数:628 分类:python
-
本教程介绍了如何在 pandas 中使用 dataframe.merge()方法合并两个 dataframes。
pandas loc vs iloc
发布时间:2024/04/24 浏览次数:837 分类:python
-
本教程介绍了如何使用 python 中的 loc 和 iloc 从 pandas dataframe 中过滤数据。
在 python 中将 pandas 系列的日期时间转换为字符串
发布时间:2024/04/24 浏览次数:894 分类:python
-
了解如何在 python 中将 pandas 系列日期时间转换为字符串