[英]Removing rows that contain the same dates from another dataframe - python - pandas
如何刪除與另一個數據框包含相同日期的所有行? 我想在兩個數據幀之間保留所有列的唯一行。 另外,我不能使用合並。
import pandas as pd
from datetime import timedelta
df1 = pd.DataFrame({
'date': ['2001-02-01','2001-02-02','2001-02-03', '2001-02-04'],
'value': [101, 201, 310, 410]})
df2 = pd.DataFrame({
'date': ['2001-02-03','2001-02-04','2001-02-05', '2001-02-05'],
'value': [121, 231, 610, 990]})
df1['date'] = pd.to_datetime(df1['date'])
df2['date'] = pd.to_datetime(df2['date'])
退貨:
date value
0 2001-02-01 101
1 2001-02-02 201
2 2001-02-03 310
3 2001-02-04 410
---
date value
0 2001-02-03 121
1 2001-02-04 231
2 2001-02-05 610
3 2001-02-06 990
所需的數據框:
print(df3)
date value
0 2001-02-01 101
1 2001-02-02 201
2 2001-02-05 610
3 2001-02-06 990
我試過df1[~df1.date.notin(df2.date)]
,但這會引發錯誤: AttributeError: 'Series' object has no attribute 'notin'
我還嘗試df1[~df1.date.isin(df2.date) == False]
並返回:
date value
2 2001-02-03 310
3 2001-02-04 410
連接兩個然后刪除重復的日期:
df3 = pd.concat([df1, df2]).drop_duplicates(subset='date', keep=False)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.