计算Excel数据中的日期差异

时间:2017-06-02 20:09:07

标签: python excel

我有一个场景,我必须阅读Excel文件并计算每个状态的日期差异,并将输出存储在另一个Excel文件中。

date    name    status
1/15/2017   ABC insert_start
1/16/2017   ABC insert_complete
1/17/2017   DEF remove_start
1/18/2017   DEF remove_complete
1/19/2017   GHI create_start
1/20/2017   GHI create_complete

我需要以下格式输出:

name    created inserted    removed
ABC        0        1          0
DEF        0        0          1
GHI        1        0          0

1ABC与完成插入状态的日期差异。 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

假设df是通过加载excel文件(看起来像您的示例中的文件)而创建的数据框。您可能已经加载了

df = pd.read_csv('foo.csv', sep='\s+', parse_dates=['date'])

现在,你可以这样做:

pivoted = df.pivot('name', 'status').fillna(0)
ops = ("create", "insert", "remove")
result = pd.concat([  pivoted['date', op + '_complete'] 
                    - pivoted['date', op + '_start'] 
                    for op in ops], axis=1)
result.columns = ops
#       create  insert  remove
#name                        
#ABC   0 days  1 days  0 days
#DEF   0 days  0 days  1 days
#GHI   1 days  0 days  0 days