【发布时间】:2018-05-02 18:58:09
【问题描述】:
我有如下图所示的 pandas DataFrame。 df1 和 df2 都是 df 的子集。我现在想创建df 的两个新子集,我们称它们为dftrn 和dftst。 dftrn 应包含 df 的所有值,它们位于 df1 和 df2 中。 dftst 应该包含不在df1 和df2 中的df 值。最快的方法是什么?
df = pd.DataFrame({
'product': ['prod1', 'prod1', 'prod1', 'prod2', 'prod2', 'prod2'],
'date': ['2017-01-01', '2017-02-01', '2017-03-01', '2017-02-01', '2017-03-01', '2017-04-01'],
'value': [5.1, 5.2, 5.4, 2.3, 2.2, 2.4]
})
df1 = pd.DataFrame({
'product': ['prod1', 'prod1'],
'date': ['2017-02-01', '2017-03-01'],
'value': [5.1, 5.4]
})
df2 = pd.DataFrame({
'product': ['prod2', 'prod2'],
'date': ['2017-02-01', '2017-04-01'],
'value': [2.3, 2.4]
})
我希望 dftrn 和 dftst 看起来像什么(指数无关紧要):
dftrn
date product value
0 2017-02-01 prod1 5.2
1 2017-03-01 prod1 5.4
2 2017-02-01 prod2 2.3
3 2017-04-01 prod2 2.4
dftst
date product value
0 2017-01-01 prod1 5.1
1 2017-03-01 prod2 2.2
【问题讨论】:
-
df1和df2似乎是不正确的数据帧。列的尺寸不匹配。可能只删除每个产品上的一个产品 -
谢谢,已修复。