gpt4 book ai didi

Python 如何提取 pandas 数据框中 [ ] 括号内的指定字符串并创建一个具有 bool 值的新列

转载 作者:行者123 更新时间:2023-11-28 21:45:50 26 4
gpt4 key购买 nike

我是编程新手,非常感谢您的任何见解!

我有一个这样的数据框。

df;

            info                Price  
0 [100:Sailing] $100
1 [150:Boating, 100:Sailing] $200
2 [200:Surfing] $300

我想根据信息列中的信息创建带有事件名称的新列,如果信息列中有相应的名称,则在新列中添加 1。它看起来像下面的数据框。

   Price  Sailing  Boating  Surfing
0 $100 1 0 0
1 $200 1 1 0
2 $300 0 0 1

我尝试了一个 code blow 但没有成功..(尽管这种方法在其他专栏中有效)

df1 = df.info.str.extract(r'(Boating|Sailing|Surfing)',expand=False)
df2 = pd.concat([df,pd.get_dummies(df1).astype(int)],axis=1)

我有超过 10000 个这样的数据,所以理想情况下我想编写一个代码,自动提取信息列中的指定字符串(如冲浪),创建一个包含事件名称的新列并返回 1 或 0,如上所示.我认为数据框中的数据或数据类型中的括号可能会导致问题,但我不确定如何解决这个问题..

最佳答案

我假设信息列中值的格式类似于 Python 列表。

df1 = df['info'].str[1:-1].str.replace(' ', '').str.get_dummies(',')
df1.rename(columns=lambda x: x.rsplit(':')[-1], inplace=True)
df2 = pd.concat([df, df1.astype(int)], axis=1)

df2
Out:
info Price Sailing Boating Surfing
0 [100:Sailing] $100 1 0 0
1 [150:Boating, 100:Sailing] $200 1 1 0
2 [200:Surfing] $300 0 0 1

关于Python 如何提取 pandas 数据框中 [ ] 括号内的指定字符串并创建一个具有 bool 值的新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38838519/

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