Python比较两列中的行并有条件地写入结果
我已经找了很长一段时间没有找到任何接近我想做的事情 我有一个数据框,在这个数据框中,我想比较a列和B列的值,如果a和B相等,则在新列中写入1或0 我可以写一个丑陋的for循环,但我知道这不是很像pythony 我很确定使用apply()可以做到这一点,但我没有任何进展 我希望能够比较包含整数的列和包含字符串的列Python比较两列中的行并有条件地写入结果,python,pandas,apply,Python,Pandas,Apply,我已经找了很长一段时间没有找到任何接近我想做的事情 我有一个数据框,在这个数据框中,我想比较a列和B列的值,如果a和B相等,则在新列中写入1或0 我可以写一个丑陋的for循环,但我知道这不是很像pythony 我很确定使用apply()可以做到这一点,但我没有任何进展 我希望能够比较包含整数的列和包含字符串的列 提前感谢您的帮助。如果df是熊猫数据帧,则 df['newcol'] = (df['A'] == df['B']).astype('int') 比如说, In [20]: df = p
提前感谢您的帮助。如果
df
是熊猫数据帧,则
df['newcol'] = (df['A'] == df['B']).astype('int')
比如说,
In [20]: df = pd.DataFrame({'A': [1,2,'foo'], 'B': [1,99,'foo']})
In [21]: df
Out[21]:
A B
0 1 1
1 2 99
2 foo foo
In [22]: df['newcol'] = (df['A'] == df['B']).astype('int')
In [23]: df
Out[23]:
A B newcol
0 1 1 1
1 2 99 0
2 foo foo 1
df['A']==df['B']
返回一个布尔序列:
In [24]: df['A'] == df['B']
Out[24]:
0 True
1 False
2 True
dtype: bool
astype('int')
将True
/False
值转换为整数--False
为0,如果True
为数据帧,则为1
df['newcol'] = (df['A'] == df['B']).astype('int')
比如说,
In [20]: df = pd.DataFrame({'A': [1,2,'foo'], 'B': [1,99,'foo']})
In [21]: df
Out[21]:
A B
0 1 1
1 2 99
2 foo foo
In [22]: df['newcol'] = (df['A'] == df['B']).astype('int')
In [23]: df
Out[23]:
A B newcol
0 1 1 1
1 2 99 0
2 foo foo 1
df['A']==df['B']
返回一个布尔序列:
In [24]: df['A'] == df['B']
Out[24]:
0 True
1 False
2 True
dtype: bool
astype('int')
将True
/False
值转换为整数--0表示False
,1表示True通过'df'表示DataFrame
?这是熊猫的问题吗?是的熊猫数据帧对不起。你说的“df”是指dataframe
?这是熊猫的问题吗?是的,熊猫数据帧对不起。我如何指示python在新列中写入1或0?如果A和B的内容是字符串,我该如何计算呢?你的更好!我有一个.apply(lambda x:1,如果x为0)
,在这种情况下要慢得多。太棒了。谢谢你的帮助!如何指示python在新列中写入1或0?如果A和B的内容是字符串,我该如何计算呢?你的更好!我有一个.apply(lambda x:1,如果x为0)
,在这种情况下要慢得多。太棒了。谢谢你的帮助!