gpt4 book ai didi

python pandas 部分字符串匹配

转载 作者:太空宇宙 更新时间:2023-11-04 07:59:40 24 4
gpt4 key购买 nike

我创建了一个数据框 df,其中有一列具有以下值:

category
20150115_Holiday_HK_Misc
20150115_Holiday_SG_Misc
20140116_DE_ProductFocus
20140116_UK_ProductFocus

我想创建 3 个新列

category                  |           A              |  B  |       C     
20150115_Holiday_HK_Misc 20150115_Holiday_Misc HK Holiday_Misc
20150115_Holiday_SG_Misc 20150115_Holiday_Misc SG Holiday_Misc
20140116_DE_ProductFocus 20140116_ProductFocus DE ProductFocus
20140116_UK_ProductFocus 20140116_ProductFocus UK ProductFocus

在 A 列中,我想删除“_HK”——我想我需要手动对其进行编码,但这没关系,我有所有国家/地区代码的列表

在 B 列中,正是国家代码

C列,是A列,开头没有日期

我正在尝试这样的事情,但还没有走得太远。

 df['B'] = np.where([df['category'].str.contains("HK")==True], 'HK', 'Not Specified')

谢谢

最佳答案

你可以使用Series.str.extract()方法:

# remove two characters (Country Code) surrounded by '_'
df['A'] = df.category.str.replace(r'_\w{2}_', '_')
# extract two characters (Country Code) surrounded by '_'
df['B'] = df.category.str.extract(r'_(\w{2})_', expand=False)
df['C'] = df.A.str.extract(r'\d+_(.*)', expand=False)

结果:

In [148]: df
Out[148]:
category A B C
0 20150115_Holiday_HK_Misc 20150115_Holiday_Misc HK Holiday_Misc
1 20150115_Holiday_SG_Misc 20150115_Holiday_Misc SG Holiday_Misc
2 20140116_DE_ProductFocus 20140116_ProductFocus DE ProductFocus
3 20140116_UK_ProductFocus 20140116_ProductFocus UK ProductFocus

关于python pandas 部分字符串匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42446916/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com