【发布时间】:2021-12-19 13:14:25
【问题描述】:
我有一个看起来像这样的 df:
name A B C D
1 bar 1 0 1 1
2 foo 0 0 0 1
3 cat 1 0-1 0
4 pet 0 0 0 1
5 ser 0 0-1 0
6 chet 0 0 0 1
我需要使用 loc 方法根据其他列的值作为一个组在新列 ('E') 中添加值,例如如果值是 [1,0,0,0] 值E 列将是 1。我试过这个:
d = {'A': 1, 'B': 0, 'C': 0, 'D': 0}
A = pd.Series(data=d, index=['A', 'B', 'C', 'D'])
df.loc[df.iloc[:, 1:] == A, 'E'] = 1
没有用。我需要使用 loc 方法或其他基于 numpy 的方法,因为数据集很大。如果可以避免创建一个系列来比较也很好的行,那么可以以某种方式提取 A B C D 列的值并将它们作为每行的一个组进行比较。
【问题讨论】:
标签: python pandas dataframe pandas-loc