Pandas DateTime Преобразования с математикой между столбцами - PullRequest
0 голосов
/ 12 ноября 2018

У меня есть DataFrame из разных столбцов: у меня есть два столбца: «Дата рождения» и «Дата убийства».

Дата рождения выглядит следующим образом: enter image description here

Дата убийства выглядит следующим образом: enter image description here

Я хотел бы иметь возможность вычитать каждую строку из столбца DOB из столбца DOM, чтобы узнать, сколько леткто-то был, когда они совершили убийство.Есть ли способ пойти по этому поводу?Теперь, похоже, работает (в основном).Я сделал следующие правки:

df_1['Date of birth'] = pd.to_datetime(df_1['Date of birth'], 
  errors 
  = 
  'coerce')
  df_1['Date of Murder revised'] = pd.to_datetime(df_1['Date of 
  Murder 
  revised'], errors = 'coerce')
  df_1['Date at Murder'] = (df_1['Date of birth'] - df_1['Date of 
  Murder 
  revised']) 
  print(df_1['Date at Murder'].head(10))

Это дает m следующий результат: 0 -12395 дней 1 -9941 дней 2 -7651 дней 3 NaT 4 -9313 дней 5 -9184 дней

I would however like to get years, but when I do the same code above 
like so:

df_1['Date at Murder'] = (df_1['Date of birth'] - df_1['Date of 
Murder revised']) / 365.25

I get this output: 
0   -34 days +01:32:38.932238
1   -28 days +18:47:33.388090
2   -21 days +01:15:53.593429
3                         NaT
4   -26 days +12:03:26.981519

1 Ответ

0 голосов
/ 12 ноября 2018

Если DOM и DOB имеют тип datetime, то это должно сделать работу:

df['Age'] = df.DOM - df.DOB

Если тип данных не datetime, преобразуйте их в

df.DOM = pandas.to_datetime(df.DOM)
df.DOB = pandas.to_datetime(df.DOB)
df['Age'] = (df.DOM - df.DOB).dt.days/365.25
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...