在 pandas 数据帧中使用REPLACE和str.startswith()来重命名值

2022-05-12 00:00:00 python pandas string series

问题描述

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

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

                 })

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

想要一些建议。


解决方案

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

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

for k, v in d.items():
    df.loc[df['source'].str.startswith(k, na=False), 'source'] = v
Pandasstr.startswith仅适用于字符串。您可以通过set(map(type, df['source']))轻松查看您的系列中存在哪些类型。

相关文章