【发布时间】:2021-08-12 18:03:09
【问题描述】:
只有当两列的值不同时,我才需要从另一列向一列添加数据。
...
regex = "|".join(v)
contains_data = df[header].astype(str).str.replace(" ", "") \
.str.lower().str.contains(regex.lower())
null_data = df[k].isna()
if len(df[contains_data & ~null_data]):
print(df[[k, header]])
df.loc[contains_data & ~null_data, k] = df[k] + "," + df[header] if df[k] != df[header] else df[k]
此过滤器df[contains_data & ~null_data] 输出以下数据:
shipping_tag (k) Shipping (header)
4 Free shipping Free shipping
由于这是两个相同的值,我只想保留前一个。
但我收到此错误:
The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
我该如何解决这个问题?
【问题讨论】:
-
df.loc[(contains_data) & (~null_data), k]我想是因为这个?