pandas dataframe time series drop duplicates

时间:2014-09-18 18:30:53

标签: python pandas dataframe time-series

我正在尝试通过组合2个可能有重复行的CSV文件来更新温度时间序列。

我试图实施drop_duplicates,但这对我不起作用。

以下是我正在尝试做的一个例子:

import pandas as pd
import numpy as np

from pandas import DataFrame, Series


dfA = DataFrame({'date' : Series(['1/1/10','1/2/10','1/3/10','1/4/10'], index=[0,1,2,3]),
    'a' : Series([60,57,56,50], index=[0,1,2,3]),
    'b' : Series([80,73,76,56], index=[0,1,2,3])})

print("dfA")     
print(dfA)

dfB = DataFrame({'date' : Series(['1/3/10','1/4/10','1/5/10','1/6/10'], index=[0,1,2,3]),
    'a' : Series([56,50,59,75], index=[0,1,2,3]),
    'b' : Series([76,56,73,89], index=[0,1,2,3])})

print("dfB")
print(dfB)

dfC = dfA.append(dfB)

print(dfC.duplicated())

dfC.drop_duplicates()
print("dfC")
print(dfC)

这是输出:

dfA
    a   b    date
0  60  80  1/1/10
1  57  73  1/2/10
2  56  76  1/3/10
3  50  56  1/4/10
dfB
    a   b    date
0  56  76  1/3/10
1  50  56  1/4/10
2  59  73  1/5/10
3  75  89  1/6/10
0    False
1    False
2    False
3    False
0     True
1     True
2    False
3    False
dtype: bool
dfC
    a   b    date
0  60  80  1/1/10
1  57  73  1/2/10
2  56  76  1/3/10
3  50  56  1/4/10
0  56  76  1/3/10
1  50  56  1/4/10
2  59  73  1/5/10
3  75  89  1/6/10

如何使用重叠数据更新时间序列并且没有重复项?

1 个答案:

答案 0 :(得分:1)

dfC.drop_duplicates()实际上并未更改dfC绑定的DataFrame(它只返回没有重复行的副本)。

您可以通过传入dfC关键字参数

来指定DataFrame inplace已在适当位置进行修改
dfC.drop_duplicates(inplace=True)

或将重复数据删除的DataFrame的视图重新绑定到名称dfC,如下所示

dfC = dfC.drop_duplicates()