从充满混乱的字符串列中获取虚拟变量

2024-10-04 01:27:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Python和数据科学方面不到一周的初学者,所以如果这些问题显而易见,请原谅我

我在一个网站上搜集了一些数据,但不幸的是,结果的格式不是很好,没有转换我就无法使用

我的数据

我有一个字符串列,其中包含许多特性,我想将这些特性转换为伪变量

字符串示例:“8个设备和选项文本和颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色颜色

我想做什么

我想创建一个虚拟列“Bluetooth”,如果字符串中包含模式“Bluetooth”,则该列等于1,否则等于0

我想创建另一个虚拟列“Climatision”,如果字符串中包含模式“Climatision”,则该列将等于1,否则为零

…等等

做5到6个我感兴趣的图案

我尝试过的

我想使用正则表达式的匹配测试,并将其与pd.getdummies方法相结合

import re
import pandas as pd

def match(My_pattern,My_strng):
    m=re.search(My_pattern,My_strng)
    if m:
        return True
    else:
        return False

pd.getdummies(df["My messy strings colum"], ...)

我还没有找到如何解决pd.getdummies参数来指定我要对列应用的测试

我甚至想知道这是否是最好的策略,创建其他parallels列并在凌乱的字符串上应用match.group()来填充它们是否会更容易。 我不确定我是否知道如何编程

谢谢你的帮助


Tags: 数据字符串importre颜色mymatch模式
1条回答
网友
1楼 · 发布于 2024-10-04 01:27:04

我认为这样做的一个方法是:

df.loc[df['My messy strings colum'].str.contains("bluetooth", na=False),'Bluetooth'] = 1
df.loc[~(df['My messy strings colum'].str.contains("bluetooth", na=False)),'Bluetooth'] = 0

df.loc[df['My messy strings colum'].str.contains("climatisation", na=False),'Climatisation'] = 1
df.loc[~(df['My messy strings colum'].str.contains("climatisation", na=False)),'Climatisation'] = 0

波浪号(~)表示,因此在本例中,条件颠倒为字符串不包含

na=false意味着如果您的凌乱列包含任何空值,这些值不会导致错误,只会假定它们不满足条件

相关问题 更多 >