1

I have a data Frame, and I am doing the following:

def calculate_planungsphase(audit, phase1, phase2):

datum_first_milestone = data_audit[(data_audit.Audit == audit) & (data_audit.Meilenstein == phase1)]
datum_second_milestone = data_audit[(data_audit.Audit == audit) & (data_audit.Meilenstein == phase2)]

print(datum_first_milestone['GeplantesErledigungsdatum'])
print(datum_second_milestone['GeplantesErledigungsdatum'])

print(datum_first_milestone['GeplantesErledigungsdatum'] - datum_second_milestone['GeplantesErledigungsdatum'])

The result of print(datum_first_milestone['GeplantesErledigungsdatum']) =

2018-01-01 Name: GeplantesErledigungsdatum, dtype: datetime64[ns]

The result of print(datum_second_milestone['GeplantesErledigungsdatum']) =

2018-01-02 Name: GeplantesErledigungsdatum, dtype: datetime64[ns]

The result of the difference calculation is:

0 NaT 1 NaT Name: GeplantesErledigungsdatum, dtype: timedelta64[ns

Why is the result of the calculation NaT? And why do i have two results, when I am doing only one calculation? (Index 0 and Index 1 = NaT)

Thank you for your help!

1 Answer 1

1

There is problem different index values, so in subtraction Series are not aligned.

Possible solution, if same size of both filtered Series, is create same index values:

datum_first_milestone.index = datum_second_milestone.index

Also solution should be simplify if need filter only column by loc + column name:

datum_first_milestone = data_audit.loc[(data_audit.Audit == audit) & (data_audit.Meilenstein == phase1), 'GeplantesErledigungsdatum']
datum_second_milestone = data_audit.loc[(data_audit.Audit == audit) & (data_audit.Meilenstein == phase2), 'GeplantesErledigungsdatum']

print(datum_first_milestone)
print(datum_second_milestone)

and if always is returned one value Series.item return scalars:

print (datum_first_milestone.item() - datum_second_milestone.item())

More general if there is one or more values is possible select first value for scalars:

print (datum_first_milestone.iat[0] - datum_second_milestone.iat[0])
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.