我正在尝试从pandas列中提取任意格式的日期(日期是较长字符串的一部分)。
我已经在pandas之外找到了 answer,但我不确定如何在pandas专栏中使用它。
日期可以采用各种格式,例如:
footballer, born October 1989
footballer, born 1900s
footballer, born 29 December 1987
Brazilian footballer, born 1983
31/02/1901
16 May 2019
是否可以将任何日期格式和部分日期作为具有date类型的pandas列?
我有一个特定id的开始日期和结束日期(df_with_start_end),我尝试从另一个数据帧(df_dates)中找出具有相同id的其他日期在它们之间。应在新列中输入结果。
我的想法是使用唯一的ID迭代数据帧df_with_start_end,对于每个ID,我尝试分析在df_with_start_end的开始日期和结束日期内是否有来自df_dates的任何其他日期。
我的实现是这样的,但它不是这样工作的。
for k in df_with_start_end['ID']:
df_with_start_end[k]['FREE_PERIOD'] = d
列名:时间戳
列dtype: Object
示例数据: 2017-12-01T00:02:39
import pandas as pd
from datetime import datetime
df['Timestamp'] = pd.to_datetime(df['Timestamp'], format='%Y/%m/%d %H:%M:%S')
ValueError: time data Timestamp doesn't match format specified
我在将时间戳列中的数据转换为datetime对象时遇到问题,然
我使用pandas.to_datetime来解析数据中的日期。默认情况下,Pandas使用datetime64[ns]表示日期,即使日期都是每天。我想知道是否有一种优雅/聪明的方法将日期转换为datetime.date或datetime64[D],这样,当我将数据写入CSV时,日期不会附加00:00:00。我知道我可以逐个元素地手动转换类型:
[dt.to_datetime().date() for dt in df.dates]
但这真的很慢,因为我有很多行,这有点违背了使用pandas.to_datetime的目的。有没有办法一次转换整个列的dtype?或者,pandas.to_datet
我有一个excel文件,其中列名包含日期-时间值.
如您所见,标题值采用日期-时间格式。我已经将它加载到Pandas dataframe中,并且头值确实被保存为日期时间值。
现在,如果我需要从Pandas查询,“选择所有大于5月15日的列”,我如何做到这一点?
我知道,通过查询df[df.columns[3:]],我可以实现这一点。但是,我真的想根据列标题的值而不是根据列的位置进行切片。
请帮帮忙。
编辑:基于下面的答案,我找到了一种查询列值的方法。把它加在这里,供将来参考。
from datetime import datetime
df[[col for col in df.
我希望在pandas中提高操作的速度,我已经了解到,通常最好的方法是使用矢量化。我正在寻找帮助的问题是向量化下面的操作。
设置:
df1 =一个包含日期-时间列和城市列的表
df2 =另一个(相当大的)表,其中包含日期-时间列和城市列
操作:
for i, row in df2.iterrows():
for x, row2 in df1.iterrows():
if row['date-time'] - row2['date-time'] > pd.Timedelta('8 hours') and row['