出现在第二个数据帧中的第一个数据帧的密钥并标记该事实

夜行者

我有两个数据框:

data = {
    'year': ['11:23:19', '11:23:19', '11:24:19', '11:25:19', '11:25:19', '11:23:19', '11:23:19', '11:23:19', '11:23:19', '11:23:19'],
    'store_number': ['1944', '1945', '1946', '1948', '1948', '1949', '1947', '1948', '1949', '1947'],
    'retailer_name': ['Walmart', 'Walmart', 'CRV', 'CRV', 'CRV', 'Walmart', 'Walmart', 'CRV', 'CRV', 'CRV'],
    'amount': [5, 5, 8, 6, 1, 5, 10, 6, 12, 11],
    'id': [10, 10, 11, 11, 11, 10, 10, 11, 11, 10]
}

df1 = pd.DataFrame(data, columns = ['retailer_name', 'store_number', 'year', 'amount', 'id'])
df1.set_index(['retailer_name', 'store_number', 'year'], inplace = True)

retailer_name store_number year      amount  id
Walmart       1944         11:23:19       5  10
              1945         11:23:19       5  10
CRV           1946         11:24:19       8  11
              1948         11:25:19       6  11
                           11:25:19       1  11
Walmart       1949         11:23:19       5  10
              1947         11:23:19      10  10
CRV           1948         11:23:19       6  11
              1949         11:23:19      12  11
              1947         11:23:19      11  10

第二个:

data2 = {
    'year': ['11:23:19', '11:23:19', '13:23:19'],
    'store_number': [1944, 1947, 1978],
    'retailer_name': ['Walmart', 'CRV', 'CRV12'],
    'amount': [5, 11, 11]
}

df2 = pd.DataFrame(data2, columns = ['retailer_name', 'store_number', 'year', 'amount'])
df2.set_index(['retailer_name', 'store_number', 'year'], inplace = True)

retailer_name store_number year      amount
Walmart       1944         11:23:19       5
CRV           1947         11:23:19      11
CRV12         1978         13:23:19      11

如何检查出现在df1中的df2键,并标记1确实出现的键,0如果没有,请执行以下操作

retailer_name store_number year      amount  flag
Walmart       1944         11:23:19       5    1
CRV           1947         11:23:19      11    1
CRV12         1978         13:23:19      11    0
最大容量

如果确保两个多索引具有相同的dtype,则可以使用MultiIndex.intersection()方法:

In [74]: df2['flag'] = 0

In [75]: df2.ix[df2.index.intersection(df.index), 'flag'] = 1
c:\envs\py35\lib\site-packages\IPython\terminal\ipapp.py:344: PerformanceWarning: indexing past lexsort depth may impact performance.
  self.shell.mainloop()

In [76]: df2
Out[76]:
                                     amount  flag
retailer_name store_number year
Walmart       1944         11:23:19       5     1
CRV           1947         11:23:19      11     1
CRV12         1978         13:23:19      11     0

注意:它不适用于示例DF,因为columnstore_number具有不同的dtypes:stringindfintindf2

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何组合 2 个数据框,创建仅出现在第二个数据框而不出现在第一个数据框和 groupby 中的行以获得总和?

如何为第一个数据帧中匹配的特定列值的所有值获取第二个数据帧的数据?

根据第二个数据帧中 2 列中的值,为第一个数据帧中的某些列添加后缀

如果第一个数据帧中存在行,如何更新第二个数据帧的存在值

从具有不同开始日期的第二个数据帧中过滤第一个数据帧的行

在第二个数据帧中映射负值,保留坐标并替换第一个数据帧

使用 Pyspark 查找第二个数据帧中未找到的行以及第一个数据帧的行号

将一个熊猫数据帧合并到另一个熊猫数据帧,并从第二个数据帧中删除第一个数据帧中存在的值

根据第二个数据帧汇总一个数据帧

检查第一个数据帧值以任何第二个数据帧值开始

映射两个数据帧,计算第二个数据帧中的时间戳在第一个数据帧的日期时间范围内的事件

两个数据帧之间的条件格式,在第二个数据帧中,如果条件对第一个数据帧有效,我想备注为真

Pyspark:内部连接两个 pyspark 数据帧并选择第一个数据帧中的所有列和第二个数据帧中的几列

使用第二个数据帧中的行连接数据帧,这些行在第一个数据帧中不存在,基于列的子集

如何根据第二个中的可能值范围合并两个数据帧,但保留第一个中的值?

在第二个数据帧中出现时过滤一个数据帧。派斯帕克。需要优雅的解决方案

在R中,如何根据第二个数据帧中的组保留一个数据帧中的所有行?

R:循环遍历一个数据帧中的一组值更新第二个数据帧

将一个数据帧中的NA值替换为第二个数据帧中的值

将一个数据帧中的值匹配到不同长度的第二个数据帧中的值

如何计算一个数据帧中的值并将结果传输到 R 中相应列下的第二个数据帧?

检查标签,一个数据帧中的位置是否落在标签中,不同长度熊猫的第二个数据帧的范围

根据第二个数据帧中的日期范围对一个数据帧中的值求和

如何使用一个数据帧中的值来计算第二个数据帧中大于或小于它的值的总数?

R根据另一个中的值搜索第二个数据帧

基于第二个数据帧中的值的子集数据帧

根据第二个数据帧替换数据帧中的列

标识第二个数据框中的行的值小于第一个

如何仅将行从一个数据帧移动到第二个数据帧中不存在 ID 的另一个数据帧?