簡體   English   中英

從另一個數據框中刪除包含相同日期的行 - python - pandas

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM