gpt4 book ai didi

python - 将文本合并到日期时间列

转载 作者:行者123 更新时间:2023-11-28 18:24:56 25 4
gpt4 key购买 nike

我有一个包含 2 列的数据框。col1datecol2bigint。有虚拟值 1970-01-01 00:00:0019700101000000

col1                col2
2012-01-12 18:09:42 19700101000000
1970-01-01 00:00:00 20140701000001

我正在寻找一种方法将这两列合并成一个日期时间列,就像这样......

col3
2012-01-12 18:09:42
2014-07-01 00:00:01

或者有什么方法可以将 col2 列中的文本合并到 col1 中。

最佳答案

你首先需要to_datetime然后 to_timedelta , 最后添加到 col1:

print (pd.to_datetime(df.col2, format='%Y%m%d%H%M%S'))
0 1970-01-01 00:00:00
1 2014-07-01 00:00:01
Name: col2, dtype: datetime64[ns]

print (pd.to_timedelta(pd.to_datetime(df.col2, format='%Y%m%d%H%M%S')))
0 0 days 00:00:00
1 16252 days 00:00:01
Name: col2, dtype: timedelta64[ns]

df.col1 = pd.to_datetime(df.col1)
df['col3'] = pd.to_timedelta(pd.to_datetime(df.col2, format='%Y%m%d%H%M%S')) + df.col1
print (df)
col1 col2 col3
0 2012-01-12 18:09:42 19700101000000 2012-01-12 18:09:42
1 1970-01-01 00:00:00 20140701000001 2014-07-01 00:00:01

参数unit也可以使用:

df['col3'] = pd.to_timedelta(pd.to_datetime(df.col2, format='%Y%m%d%H%M%S'), unit='ns') + 
df.col1
print (df)
col1 col2 col3
0 2012-01-12 18:09:42 19700101000000 2012-01-12 18:09:42
1 1970-01-01 00:00:00 20140701000001 2014-07-01 00:00:01

关于python - 将文本合并到日期时间列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42003177/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com