我有 2 个数据框,一个包含 2 列(日期和 key ),另一个包含相同的 2 列(日期和 key )。我想在一个数据框中创建一个新列,如果日期和键存在于另一个数据框中,则值为“1”;如果不存在,则值为“0”。这是一个例子:
df1:
+---------+--------+
| date | key |
+---------+--------+
| date1 | A |
+---------+--------+
| date2 | A |
+---------+--------+
| date3 | B |
+---------+--------+
df2:
+---------+--------+
| date | key |
+---------+--------+
| date1 | A |
+---------+--------+
| date4 | C |
+---------+--------+
| date5 | B |
+---------+--------+
resulting df1:
+---------+--------+--------+
| date | key | col3 |
+---------+--------+--------+
| date1 | A | 1 |
+---------+--------+--------+
| date2 | A | 0 |
+---------+--------+--------+
| date3 | B | 0 |
+---------+--------+--------+
本例中,由于 df1 的第一行(date1, A)存在于 df2 中,因此 col3 的值为 1,其他行均为 0。
我该怎么做?
最佳答案
对新列使用indicator
参数,然后通过比较both
字符串转换为1,0
:
df = df1.merge(df2, how='left', indicator='col3', on=['date','key'])
df['col3'] = df['col3'].eq('both').astype(int)
或者:
df['col3'] = np.where(df['col3'].eq('both'), 1, 0)
关于python - 如何根据 python 中 2 列的条件创建具有值的新数据框列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67054537/