Pandas - 基于另一列(城市名称)创建一个新列(分支名称)

Posted

技术标签:

【中文标题】Pandas - 基于另一列(城市名称)创建一个新列(分支名称)【英文标题】:Pandas - Create a new column (Branch name) based on another column (City name) 【发布时间】:2020-12-13 20:14:27 【问题描述】:

我有以下 Python Pandas 数据框(8 行):

城市名 纽约 长滩 詹姆斯敦 芝加哥 福雷斯特公园 伯温 拉斯维加斯 迈阿密

我想根据城市名称添加一个新列(分支名称),如下所示:

城市名称 分行名称 纽约,纽约 纽约长滩 纽约詹姆斯敦 芝加哥芝加哥 芝加哥福雷斯特公园 伯温芝加哥 拉斯维加斯拉斯维加斯 迈阿密迈阿密

我该怎么做?

【问题讨论】:

【参考方案1】:

您可以使用.map()。字典中没有的城市名称将被保留。

df["Branch Name"] = df["City Name"].map("Long Beach":"New York",
                                         "Jamestown":"New York",
                                         "Forrest Park":"Chicago",
                                         "Berwyn":"Chicago",, na_action='ignore')
df["Branch Name"] = df["Branch Name"].fillna(df["City Name"])

【讨论】:

na_action 指的是什么? NaN 不会通过字典

以上是关于Pandas - 基于另一列(城市名称)创建一个新列(分支名称)的主要内容,如果未能解决你的问题,请参考以下文章

Pandas:根据另一列的百分比增长率创建一个新列

基于 Pandas 中另一列文本的特征工程师文本

Pandas:根据字符串的一部分是不是在另一列中的任何位置创建新列

Pandas:创建新列,其中包含按组列出的另一列中最大值的对应值

从另一列 pandas df 分配值的有效方法

将语料库中的名称部分匹配到 Pandas 数据框中另一列中的名称