如何实现两个dataframe相减?

新手上路,请多包涵

数据是关于股票数据的dataframe,里面包括股票代码、交易日期。
然后我想剔除每个月交易日小于15天的数据,
现在的问题是:
我已经从总的股票数据dataframe1中获取了每个月交易日小于15天的dataframe2,我也拥有原来的总的股票数据dataframe1,【也就是说dataframe2是dataframe1的子集】
我想让dataframe1-dataframe2,也就是实现对dataframe1进行操作,让他的数据不再包括dataframe2
请问这该如何做呢?谢谢回答

阅读 32.7k
2 个回答

如果你dataframe2的index和dataframe1是一致的
dataframe1.drop(dataframe2.index)

这里我们不清楚股票数据格式是怎么样的,假设是这样的:

>>> dt = {'date_time': ['2018-03-11', '2018-03-12', '2018-03-16', '2018-03-17'], 'code': ['000000', '000001', '000002', '000003']}
>>> dateframe1 = pandas.DataFrame(data=dt)
>>> dateframe1
     code   date_time
0  000000  2018-03-11
1  000001  2018-03-12
2  000002  2018-03-16
3  000003  2018-03-17

也不清楚是如何得到dateframe2的,假设是这样得到的:

>>> dateframe2 = dateframe1[dateframe1.date_time < '2018-03-15']
>>> dateframe2
     code   date_time
0  000000  2018-03-11
1  000001  2018-03-12

那么参考pandas DateFrame 的 drop 函数用法,可以用下面方法得到需要的dateframe3:

>>> dateframe3 = dateframe1.drop(labels=dateframe2.axes[0])
>>> dateframe3
     code   date_time
2  000002  2018-03-16
3  000003  2018-03-17

一般从 DateFrame 中去除特定行可以使用DateFrame.drop方法。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题