Python 使用基于现有列的值向dataframe添加新列
如何遍历数据框并添加一个新的列,该列包含基于现有列是否对每行具有相同值的值的值 例如,在下面的数据框中,我想添加一个新列,该列在Col1和Col2包含1s的行中包含1,如果它们不都包含1,则添加0Python 使用基于现有列的值向dataframe添加新列,python,pandas,dataframe,Python,Pandas,Dataframe,如何遍历数据框并添加一个新的列,该列包含基于现有列是否对每行具有相同值的值的值 例如,在下面的数据框中,我想添加一个新列,该列在Col1和Col2包含1s的行中包含1,如果它们不都包含1,则添加0 Col1 Col2 1 1 1 1 1 0 0 0 0 1 1 1 1 1 我想要的输出是 Col1 Col2 Col3 1 1 1 1 1 1 1 0 0 0 0 0 0 1 0 1
Col1 Col2
1 1
1 1
1 0
0 0
0 1
1 1
1 1
我想要的输出是
Col1 Col2 Col3
1 1 1
1 1 1
1 0 0
0 0 0
0 1 0
1 1 1
1 1 1
理想情况下,这将在将来扩展到更多列(如果所有列都包含1,则新列只包含1)如果需要,请检查是否所有列都是
1
用于转换为整数,如果数据仅为1
和0
:
df['col3'] = df.all(axis=1).astype(int)
如果只需要测试1
,则为=
的任何数据使用工作:
df['col3'] = df.eq(1).all(axis=1).astype(int)
如果要选择“检查”“添加子集”的列:
cols = ['Col1', 'Col2']
df['col3'] = df[cols].all(axis=1).astype(int)
或:
如果您只使用0和1进行尝试
现在检查:)@jezraelSuper,现在对
1
或0
@ansev Creative solution提供的2列文件非常有效+1.
df['col3'] = df[cols].eq(1).all(axis=1).astype(int)
df['Col3'] = df['Col1'].mul(df['Col2'])