我有以下代码来迭代数据框的行和列,因此检查它们的值是否包含特殊字符串,然后添加一个新列并对其进行分类。
mylist_bus = ["AAG","BOS"]
mylist_rail = ["BDW","FB"]
scenarios = [df_1,df_2]
keys = [df1,df2]
for key, scenario in zip(keys,scenarios):
for i, row in scenario.iterrows():
if scenario.loc[i, "ActivityType_" + key] == "leg":
if scenario.loc[i, "lineId_" + key].str.contains('|'.join(mylist_bus):
scenario.loc[i,"category_" + key] = "bus"
if scenario.loc[i, "lineId_" + key].str.contains('|'.join(mylist_rail)):
scenario.loc[i, "lineId_" + key] = "rail"
elif scenario.loc[i, "ActivityType_" + key] == "car":
scenario.loc[i,"category_" + key] = "car"
df1.head()
但是,我有错误:
“str”对象没有属性“str”
排队
if scenario.loc[i, "lineId_" + key].str.contains('|'.join(mylist_bus)):
那我应该怎么检查呢?
例如,输入数据的一部分是:
我想要以下输出数据:
.contains()
是String
Java中的一种方法
在 Python 中,使用in
或str.find()
。in
返回一个布尔值,而str.find()
返回搜索词的索引,如果不存在则返回 -1。抛出错误的行将变为:
if '|'.join(mylist_bus) in scenario.loc[i, "lineId_" + key]:
要么
if str.find(scenario.loc[i, "lineId_" + key], '|'.join(mylist_bus)) >= 0:
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句