比较几个列分组的一个列表Pandas

hrirmatl  于 2023-01-24  发布在  其他
关注(0)|答案(1)|浏览(126)

我有以下Pandas Dataframe :

A0   B0   C0   D0   E0   F0  G0   A1   B1   C1   D1   E1   F1  G1  label
0  1.3  2.4  1.5  2.0  2.0  3.2   5  1.3  2.4  1.5  2.0  2.0  3.2   5   True
1  1.3  2.4  1.5  2.0  2.0  3.2   7  1.3  2.4  1.5  2.0  2.0  3.2   5  False
2  1.3  2.4  1.5  2.0  2.0  3.2   7  1.3  2.4  1.5  2.0  2.0  3.2   7   True
3  1.3  2.4  1.5  2.0  2.0  3.2   6  1.3  2.4  1.5  2.0  2.0  3.2   6   True
4  1.3  2.4  1.5  2.0  2.0  3.2   5  1.3  2.4  1.5  2.0  2.0  3.2   6  False

我只想比较df ['G0']和df ['G1'],
但是在比较之前的列(A0对A1、B0对B1、C0对C1等)并且总是保持它们全部相同之后。

pftdvrlh

pftdvrlh1#

你可以把你的 Dataframe 分成两部分,然后使用numpy来比较它们,不需要任何索引。假设label列之前不存在。

df['label'] = (df.iloc[:, :7].to_numpy() == df.iloc[:, 7:].to_numpy()).all(axis=1)
print(df)

# Output
    A0   B0   C0   D0   E0   F0  G0   A1   B1   C1   D1   E1   F1  G1  label
0  1.3  2.4  1.5  2.0  2.0  3.2   5  1.3  2.4  1.5  2.0  2.0  3.2   5   True
1  1.3  2.4  1.5  2.0  2.0  3.2   7  1.3  2.4  1.5  2.0  2.0  3.2   5  False
2  1.3  2.4  1.5  2.0  2.0  3.2   7  1.3  2.4  1.5  2.0  2.0  3.2   7   True
3  1.3  2.4  1.5  2.0  2.0  3.2   6  1.3  2.4  1.5  2.0  2.0  3.2   6   True
4  1.3  2.4  1.5  2.0  2.0  3.2   5  1.3  2.4  1.5  2.0  2.0  3.2   6  False

注意:我使用.iloc来平均分割 Dataframe ,但是还有其他方法,如filter,可以根据列名选择列。

相关问题