Python Pandas 中 DataFrame 中计算的月数?
Amount of months calculation in DataFrame in Python Pandas?
我有如下所示的 DataFrame:
df = pd.DataFrame({"ID" : ["1", "2", "3"],
"Date" : ["12/11/2020", "12/10/2020", "05/04/2020"]})
我需要计算从日期列到今天的月数。下面我上传我需要的结果:
尝试使用此代码将 'Date'
列中的时间减去,我也使用 np.ceil
,因为它会四舍五入一个数字:
df['Date'] = pd.to_datetime(df['Date'])
df['Amount'] = ((pd.to_datetime('now') - df['Date']) / np.timedelta64(1, 'M')).apply(np.ceil)
print(df)
您可以修改 以减去标量 d
:
df['Date'] = pd.to_datetime(df['Date'], dayfirst=True)
d = pd.to_datetime('now')
df['Amount'] = 12 * (d.year - df['Date'].dt.year) + d.month - df['Date'].dt.month
print (df)
ID Date Amount
0 1 2020-11-12 1
1 2 2020-10-12 2
2 3 2020-04-05 8
from datetime import datetime
import pandas as pd
import numpy as np
df = pd.DataFrame({"ID" : ["1", "2", "3"],
"Date" : ["12/11/2020", "12/10/2020", "05/04/2020"]})
df['Month_diff'] = round(((datetime.now() - pd.to_datetime(df.Date,infer_datetime_format=True,dayfirst=True))/np.timedelta64(1, 'M'))-0.5)
这将是一个单行代码,您可以在其中将列 Date
转换为 datetimeformat,然后执行操作。输出:
ID Date Month_diff
0 1 12/11/2020 1.0
1 2 12/10/2020 2.0
2 3 05/04/2020 8.0
我有如下所示的 DataFrame:
df = pd.DataFrame({"ID" : ["1", "2", "3"],
"Date" : ["12/11/2020", "12/10/2020", "05/04/2020"]})
我需要计算从日期列到今天的月数。下面我上传我需要的结果:
尝试使用此代码将 'Date'
列中的时间减去,我也使用 np.ceil
,因为它会四舍五入一个数字:
df['Date'] = pd.to_datetime(df['Date'])
df['Amount'] = ((pd.to_datetime('now') - df['Date']) / np.timedelta64(1, 'M')).apply(np.ceil)
print(df)
您可以修改 d
:
df['Date'] = pd.to_datetime(df['Date'], dayfirst=True)
d = pd.to_datetime('now')
df['Amount'] = 12 * (d.year - df['Date'].dt.year) + d.month - df['Date'].dt.month
print (df)
ID Date Amount
0 1 2020-11-12 1
1 2 2020-10-12 2
2 3 2020-04-05 8
from datetime import datetime
import pandas as pd
import numpy as np
df = pd.DataFrame({"ID" : ["1", "2", "3"],
"Date" : ["12/11/2020", "12/10/2020", "05/04/2020"]})
df['Month_diff'] = round(((datetime.now() - pd.to_datetime(df.Date,infer_datetime_format=True,dayfirst=True))/np.timedelta64(1, 'M'))-0.5)
这将是一个单行代码,您可以在其中将列 Date
转换为 datetimeformat,然后执行操作。输出:
ID Date Month_diff
0 1 12/11/2020 1.0
1 2 12/10/2020 2.0
2 3 05/04/2020 8.0