我有一列名为source的列,其中包含数百行文本。 问题是其中一些可以组合在一起,而我在Pandas数据框中很难做到这一点。这是我的代码:
df.source.replace({
df.source.str.startswith('share', na=False): 'sharePet',
df.source.str.startswith('2012-01-08', na=False): 'shareDate'
})
此外,这是否适用于以日期开头的第二行?如果没有,我可以将其保留在第一行和其他文本分组中。
会喜欢一些建议。
答案 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']))
轻松检查系列中存在哪些类型。