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

时间:2018-11-27 12:32:40

标签: python pandas

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

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

                 })

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

会喜欢一些建议。

1 个答案:

答案 0 :(得分: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']))轻松检查系列中存在哪些类型。