【问题标题】:Difference between the dates of occurrence of a phone number in PandasPandas中电话号码出现日期之间的差异
【发布时间】:2019-12-22 21:48:37
【问题描述】:

我有两个 csv 文件:

csv1:

Mobile_Number    Date    

503477334    2018-10-12
506002884    2018-10-12
501022162    2018-10-12
503487338    2018-10-13
506012887    2018-10-13
503427339    2018-10-14

csv2:

   Date       Mobile_Number

2018-10-01     503477334
2018-10-06     501022162
2018-10-08     506002884
2018-10-09     503487338
2018-10-13     506012887
2018-10-14     503427492

现在。我想要一个如下所示的输出,如果数字存在于 csv2 中,则有一个新列指示 csv1 中数字的出现日期之间的差异

csv1:

Mobile_Number    Date     Difference

503477334    2018-10-12     11
506002884    2018-10-12     4
501022162    2018-10-12     6
503487338    2018-10-13     4
506012887    2018-10-13     0
503427339    2018-10-14     NaN

【问题讨论】:

    标签: pandas


    【解决方案1】:

    Series.mapDate 列相减,然后将timedeltas 转换为Series.dt.days

    df1['Date'] = pd.to_datetime(df1['Date'])
    df2['Date'] = pd.to_datetime(df2['Date'])
    
    s1 = df2.drop_duplicates('Mobile_Number').set_index('Mobile_Number')['Date']
    df1['Difference'] = df1['Date'].sub(df1['Mobile_Number'].map(s1)).dt.days
    print (df1)
       Mobile_Number       Date  Difference
    0      503477334 2018-10-12        11.0
    1      506002884 2018-10-12         4.0
    2      501022162 2018-10-12         6.0
    3      503487338 2018-10-13         4.0
    4      506012887 2018-10-13         0.0
    5      503427339 2018-10-14         NaN
    

    【讨论】:

    • 感谢您的快速回复。但我收到以下错误“InvalidIndexError:重新索引仅对具有唯一值的索引对象有效”
    • @dPac - 我认为问题是 df2['Mobile_Number'] 中的重复项,已编辑答案以删除重复项。
    • 我现在收到此错误,TypeError: unsupported operand type(s) for -: 'datetime.date' and 'float'
    • 如果在df1['Difference'] = df1['Date'].sub(df1['Mobile_Number'].map(s1)).dt.days 之前检查print (df1.dtypes)print (df2.dtypes) ?这是什么?
    • 对于 df1 和 df2:移动 _Number - 对象,日期 - datetime64[ns]
    猜你喜欢
    • 2016-10-01
    • 2018-03-29
    • 2020-11-15
    • 2011-02-01
    • 2019-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-27
    相关资源
    最近更新 更多