鍍金池/ 問答/數(shù)據(jù)分析&挖掘  Python/ 如何實現(xiàn)兩個dataframe相減?

如何實現(xiàn)兩個dataframe相減?

數(shù)據(jù)是關(guān)于股票數(shù)據(jù)的dataframe,里面包括股票代碼、交易日期。
然后我想剔除每個月交易日小于15天的數(shù)據(jù),
現(xiàn)在的問題是:
我已經(jīng)從總的股票數(shù)據(jù)dataframe1中獲取了每個月交易日小于15天的dataframe2,我也擁有原來的總的股票數(shù)據(jù)dataframe1,【也就是說dataframe2是dataframe1的子集】
我想讓dataframe1-dataframe2,也就是實現(xiàn)對dataframe1進(jìn)行操作,讓他的數(shù)據(jù)不再包括dataframe2
請問這該如何做呢?謝謝回答

回答
編輯回答
紓惘

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

2017年4月3日 15:27
編輯回答
骨殘心

這里我們不清楚股票數(shù)據(jù)格式是怎么樣的,假設(shè)是這樣的:

>>> 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的,假設(shè)是這樣得到的:

>>> 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 函數(shù)用法,可以用下面方法得到需要的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方法。

2017年2月18日 08:13