字符串中转换器 Int64 的值更改 Python
Change of value to the converter Int64 in string Python
我无法理解导致日期值在转换时发生变化的原因。
我有以下值“19670619”,类型为 int64。
我需要转换为字符串并保留日期“06/19/1967”。
我是这样做的:
Op['dt'] = pd.to_datetime(Op['dt'], unit = 'ms')
Op['dt'] = Op['dt'].fillna(datetime(2200,12,31))
OP['dt'] = Op['dt'].apply(lambda x: x.strftime('%d/%m/%Y'))
我得到的结果是:01/01/1970,它与输入的原始日期不同。
我尝试的另一种方法是:
Op['dt'] = pd.to_datetime(Op['dt'], unit = 'm')
Op['dt'] = Op['dt'].fillna(datetime(2200,12,31))
OP['dt'] = Op['dt'].apply(lambda x: x.strftime('%d/%m/%Y'))
结果是:27/05/2007,即使阅读其他转换案例,我也无法理解为什么会发生这种情况。
有人可以帮我吗?
尝试pd.to_datetime(df["dt"]).dt.strftime('%d/%m/%Y')
例如:
import pandas as pd
df = pd.DataFrame({"dt" : [ "19670619"]})
df["dt"] = pd.to_datetime(df["dt"]).dt.strftime('%d/%m/%Y')
print(df)
输出:
dt
0 19/06/1967
我按如下方式解决了我的问题。
Op['dt'] = pd.to_datetime(Op['dt'], format='%Y%m%d')
Op['dt'] = pd.to_datetime(Op['dt'], unit = 's')
Op['dt'] = Op['dt'].fillna(datetime(2200,12,31))
Op['dt'] = Op['dt'].apply(lambda x: x.strftime('%d/%m/%Y'))
我无法理解导致日期值在转换时发生变化的原因。
我有以下值“19670619”,类型为 int64。 我需要转换为字符串并保留日期“06/19/1967”。
我是这样做的:
Op['dt'] = pd.to_datetime(Op['dt'], unit = 'ms')
Op['dt'] = Op['dt'].fillna(datetime(2200,12,31))
OP['dt'] = Op['dt'].apply(lambda x: x.strftime('%d/%m/%Y'))
我得到的结果是:01/01/1970,它与输入的原始日期不同。 我尝试的另一种方法是:
Op['dt'] = pd.to_datetime(Op['dt'], unit = 'm')
Op['dt'] = Op['dt'].fillna(datetime(2200,12,31))
OP['dt'] = Op['dt'].apply(lambda x: x.strftime('%d/%m/%Y'))
结果是:27/05/2007,即使阅读其他转换案例,我也无法理解为什么会发生这种情况。 有人可以帮我吗?
尝试pd.to_datetime(df["dt"]).dt.strftime('%d/%m/%Y')
例如:
import pandas as pd
df = pd.DataFrame({"dt" : [ "19670619"]})
df["dt"] = pd.to_datetime(df["dt"]).dt.strftime('%d/%m/%Y')
print(df)
输出:
dt
0 19/06/1967
我按如下方式解决了我的问题。
Op['dt'] = pd.to_datetime(Op['dt'], format='%Y%m%d')
Op['dt'] = pd.to_datetime(Op['dt'], unit = 's')
Op['dt'] = Op['dt'].fillna(datetime(2200,12,31))
Op['dt'] = Op['dt'].apply(lambda x: x.strftime('%d/%m/%Y'))