Python 如何提取 pandas 数据框中 [ ] 括号内的指定字符串并创建一个包含布尔值的新列
Python How to extract specified string within [ ] brackets in pandas dataframe and create a new column with boolean values
我是编程新手,非常感谢您的任何见解!
我有一个这样的数据框。
df;
info Price
0 [100:Sailing] 0
1 [150:Boating, 100:Sailing] 0
2 [200:Surfing] 0
我想根据 info 列中的信息创建名称为 activity 的新列,如果 info 列中有相应的名称,则在新列中添加 1。它看起来像下面的数据框。
Price Sailing Boating Surfing
0 0 1 0 0
1 0 1 1 0
2 0 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 个这样的数据,所以理想情况下我想编写一个代码,自动提取信息列中的指定字符串(如冲浪),创建一个名称为 activity 的新列和 return 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] 0 1 0 0
1 [150:Boating, 100:Sailing] 0 1 1 0
2 [200:Surfing] 0 0 0 1
我是编程新手,非常感谢您的任何见解!
我有一个这样的数据框。
df;
info Price
0 [100:Sailing] 0
1 [150:Boating, 100:Sailing] 0
2 [200:Surfing] 0
我想根据 info 列中的信息创建名称为 activity 的新列,如果 info 列中有相应的名称,则在新列中添加 1。它看起来像下面的数据框。
Price Sailing Boating Surfing
0 0 1 0 0
1 0 1 1 0
2 0 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 个这样的数据,所以理想情况下我想编写一个代码,自动提取信息列中的指定字符串(如冲浪),创建一个名称为 activity 的新列和 return 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] 0 1 0 0
1 [150:Boating, 100:Sailing] 0 1 1 0
2 [200:Surfing] 0 0 0 1