从另一个数据框中删除包含相同日期的行-python-大熊猫
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从另一个数据框中删除包含相同日期的行-python-大熊猫相关的知识,希望对你有一定的参考价值。
如何删除与另一个数据框包含相同日期的所有行?我想在两个数据框之间的所有列中保留唯一的行。另外,我不能使用合并。
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)
以上是关于从另一个数据框中删除包含相同日期的行-python-大熊猫的主要内容,如果未能解决你的问题,请参考以下文章
如何删除在 Python 数据框中部分包含字符串的行 [重复]