在 pandas 数据框中使用 replace 和 str.startswith() 重命名值

Posted

技术标签:

【中文标题】在 pandas 数据框中使用 replace 和 str.startswith() 重命名值【英文标题】:Using replace and str.startswith() in a pandas dataframe to rename values 【发布时间】:2019-04-29 04:49:07 【问题描述】:

我有一个名为 source 的列,其中包含几百行文本。 问题是其中一些可以组合在一起,我正在努力在 Pandas 数据框中做到这一点。这是我的代码:

df.source.replace(
                   df.source.str.startswith('share', na=False): 'sharePet',
                   df.source.str.startswith('2012-01-08', na=False): 'shareDate'

                 )

此外,这是否适用于以日期开头的第二行?如果不是,我可以将其保留在第一行和其他文本分组中。

希望得到一些建议。

【问题讨论】:

【参考方案1】:

您可以使用字典并进行迭代:

d = 'share': 'sharePet', '2012-01-08': 'shareDate'

for k, v in d.items():
    df.loc[df['source'].str.startswith(k, na=False), 'source'] = v

Pandas str.startswith 仅适用于字符串。您可以通过set(map(type, df['source']))轻松查看您的系列中存在哪些类型。

【讨论】:

以上是关于在 pandas 数据框中使用 replace 和 str.startswith() 重命名值的主要内容,如果未能解决你的问题,请参考以下文章

在 pandas 数据框中搜索和替换大型数据集

Pandas 替换列中的值,但 to_replace 参数是包含元组的元组

使用 Pandas 数据框中的值注释热图

使用 pandas.DataFrame.mode 和 groupby 在数据框中找到大多数 [重复]

如何在python pandas数据框中选择和更改数据[重复]

将列的名称保留在 groupby 中,并在 pandas 数据框中使用 sum