首页 > 解决方案 > for i in range(len) 和正则表达式

问题描述

如何为每个水果生成一个列,然后如果名为“连接”的列提到三种水果中的任何一种,则添加一个虚拟变量(或 True/False)。名为“concatenated”的列可以提到不止一种水果。

list = ['apple', 'banana', 'orange']
for i in range(len(list)):
    df['{0}'.format(list )] = df['concatenated'].str.contains('[{0}]$'.format{list}, regex=True)

标签: pythonregexlistfor-looprange

解决方案


import pandas as pd
df = pd.DataFrame([['apple banana'], ['apple'], ['banana']], columns=['concatenated'])
l = ['apple', 'banana', 'orange']
for element in l:
    df[element] = df['concatenated'].str.contains(element, regex=True)

print(df.head())
>   concatenated   apple  banana  orange
> 0  apple banana   True    True   False
> 1         apple   True   False   False
> 2        banana  False    True   False

推荐阅读