【发布时间】:2020-04-08 08:00:28
【问题描述】:
功能是:
def combine(row):
count = 0
stage = ""
if (str(row.doggo) == "doggo"):
stage = "doggo"
count += 1
if row.floofer == "floofer":
stage = "floofer"
count += 1
if row.pupper == "pupper":
stage = "pupper"
count += 1
if row.pupper == "puppo":
stage = "puppo"
count += 1
if count == 0:
return pd.np.NAN
elif count == 1:
return stage
else:
return "multiple"
调用方法时:
df_twitter_archive_clean["status"] = df_twitter_archive_clean[["doggo","floofer","pupper","puppo"]].apply(combine)
出现错误信息:
----------------------------------- ---------------------------- AttributeError Traceback(最近调用 最后)在 ----> 1 df_twitter_archive_clean["status"] = df_twitter_archive_clean[["doggo","floofer","pupper","puppo"]].apply(combine)
~/anaconda3/lib/python3.7/site-packages/pandas/core/frame.py 在 应用(自我,函数,轴,广播,原始,减少,结果类型,参数, **kwds) 6485 args=args, 6486 kwds=kwds) -> 6487 return op.get_result() 6488 6489 def applymap(self, func):
~/anaconda3/lib/python3.7/site-packages/pandas/core/apply.py 获取结果(自我) 第149章 150 --> 151 返回 self.apply_standard() 152 153 def apply_empty_result(自我):
~/anaconda3/lib/python3.7/site-packages/pandas/core/apply.py 应用标准(自我) 255 256 # 使用序列生成器计算结果 --> 257 self.apply_series_generator() 258 259 # 包装结果
~/anaconda3/lib/python3.7/site-packages/pandas/core/apply.py apply_series_generator(self) 284 尝试: 285 for i, v in enumerate(series_gen): --> 286 个结果[i] = self.f(v) 第287章 288 例外为 e:
在组合(行)中 2 计数 = 0 3阶段=“” ----> 4 if (str(row.doggo) == "doggo"): 5 阶段 = "doggo" 6 计数 += 1
~/anaconda3/lib/python3.7/site-packages/pandas/core/generic.py getattr(self, name) 5065 if self._info_axis._can_hold_identifiers_and_holds_name(name): 5066
返回自我[姓名] -> 5067 返回对象。getattribute(self, name) 5068 5069 def setattr(self, name, value):AttributeError: ("'Series' object has no attribute 'doggo'", '发生在索引 doggo')
【问题讨论】:
-
在
apply()中使用axis=1表示列轴