python如何仅从df字符串中选择特殊元素
请帮忙。 如果字符串中有多个元素,我只需要选择“黄”、“绿”、“黑”或这些元素的组合。 df: 结果应该是:python如何仅从df字符串中选择特殊元素,python,pandas,Python,Pandas,请帮忙。 如果字符串中有多个元素,我只需要选择“黄”、“绿”、“黑”或这些元素的组合。 df: 结果应该是: 0 ['green','yellow','black'] 1 ['green','yellow'] 2 ['black'] 3 ['green','yellow'] 4 ['green'] 您的数据帧df: val 0 ['blue','green','white','yellow','orange','pin... 1 ['green','yellow','orang
0 ['green','yellow','black']
1 ['green','yellow']
2 ['black']
3 ['green','yellow']
4 ['green']
您的数据帧
df
:
val
0 ['blue','green','white','yellow','orange','pin...
1 ['green','yellow','orange','pink','pink']
2 ['white','orange','black']
3 ['green','white','yellow','orange']
4 ['green']
尝试使用apply()
并列出理解:
df['val']=df['val'].apply(lambda x:eval(x)) #use this only when the data inside val is string
注意:如果上面的行抛出错误,那么只需跳过它并移动到下面的代码(这意味着val列中的数据属于list类型)
最后:
df['val']=df['val'].apply(lambda x:[y for y in x if y=='yellow' or y=='green' or y=='black'])
或(使用任意一个代码)
现在,如果您打印df
,您将获得:
val
0 [green, yellow, black]
1 [green, yellow]
2 [black]
3 [green, yellow]
4 [green]
您的数据帧
df
:
val
0 ['blue','green','white','yellow','orange','pin...
1 ['green','yellow','orange','pink','pink']
2 ['white','orange','black']
3 ['green','white','yellow','orange']
4 ['green']
尝试使用apply()
并列出理解:
df['val']=df['val'].apply(lambda x:eval(x)) #use this only when the data inside val is string
注意:如果上面的行抛出错误,那么只需跳过它并移动到下面的代码(这意味着val列中的数据属于list类型)
最后:
df['val']=df['val'].apply(lambda x:[y for y in x if y=='yellow' or y=='green' or y=='black'])
或(使用任意一个代码)
现在,如果您打印df
,您将获得:
val
0 [green, yellow, black]
1 [green, yellow]
2 [black]
3 [green, yellow]
4 [green]
尝试:
尝试:
例如,输入数组是否可以多次显示“黄色”?如果是这样的话,那么输出应该是什么呢?@JoseNuno在我的例子中是-no。字符串只包含这个或那个颜色一次。它们是作为列表存储在数据帧或字符串中吗?@ThePyGuy-like字符串,但我通过.str.split(,)将它们转换为列表。例如,输入数组可以多次使用“黄色”吗?如果是这样的话,那么输出应该是什么呢?@JoseNuno在我的例子中是-no。字符串只包含一次这种或那种颜色。它们是作为列表存储在数据帧或字符串中吗?@ThePyGuy-like字符串,但我通过.str.split(,)将它们转换为列表