相关疑难解决方法(0)

以小时和分钟计算两列之间的Pandas DataFrame时差

我在数据框中有两列和迄今为止的列

当我尝试添加新的列差异时,找到两个日期之间的差异使用

df['diff'] = df['todate'] - df['fromdate']
Run Code Online (Sandbox Code Playgroud)

如果超过24小时,我会在几天内得到差异列.

2014-01-24 13:03:12.050000,2014-01-26 23:41:21.870000,"2 days, 10:38:09.820000"
2014-01-27 11:57:18.240000,2014-01-27 15:38:22.540000,03:41:04.300000
2014-01-23 10:07:47.660000,2014-01-23 18:50:41.420000,08:42:53.760000
Run Code Online (Sandbox Code Playgroud)

如何仅在小时和分钟内转换结果,忽略天数甚至秒数.

python datetime pandas

55
推荐指数
3
解决办法
13万
查看次数

从 pandas 列中提取任何格式的日期(日期是较长字符串的一部分)

我正在尝试从 pandas 列中提取任何格式的日期(日期是较长字符串的一部分)。

我找到了这个答案,它在 pandas 之外执行此操作,但我不确定如何使用它在 pandas 专栏中执行此操作。

日期可以采用多种格式,例如:

footballer, born October 1989
footballer, born 1900s
footballer, born 29 December 1987
Brazilian footballer, born 1983
31/02/1901
16 May 2019
Run Code Online (Sandbox Code Playgroud)

是否可以将任何日期格式和部分日期作为具有日期类型的 pandas 列?

python pandas

6
推荐指数
1
解决办法
992
查看次数

从字符串中提取启发式(模糊)日期?

我在启发式解析包含日期但采用相当任意(未知)格式的文本字符串时遇到问题。

function parseDateStr($text) {
    $cleanText = filter($text);
    # ...
    $day = findDay($cleanText);
    $month = findMonth($cleanText);
    $year = findYear($cleanText);
    # .. assert constraints, parse again or fail
    return sprintf('%04d-%02d-%02d', $year, $month, $day)
}
Run Code Online (Sandbox Code Playgroud)

输入文本是英文句子加上任意语法符号(如 \W regexp 类的子集)。该算法的任务是仅在过滤掉与日期无关的任何潜在垃圾(嘈杂)词之后才提取日期。允许算法失败并且不返回结果。如果在字符串中只找到两个连接的数字 (MM) 和其他四个数字 (YYYY) 的两个组合 - 假设两个数字对应于日期的月份,并且日期被视为 01(日期的第一天)这个月)。结果以“YYYY-MM-DD”(SQL)格式(日期类型)给出日期。

我的想法是继续使用preg_replace & co设计一系列过滤器。此外,对 $year、$day 的范围使用逻辑约束,对 $month 使用词汇等,但如果可以想到或已经存在类似但更优雅的解决方案或方法,我不会感到惊讶。如果是这样,请让我知道他们。如果可以指出任何批评者或潜在的陷阱,我也将不胜感激。

类似问题的相关资料:

请注意,该问题与更基本的日期解析问题不同,因为:

因为就我而言,我无法指定或确定字符串的格式。另一方面,以下问题讨论了类似的任务:

我不确定最后一个是否重复,我最终不清楚 OP 想要解析什么(尽管checkdatedate_parse似乎部分有用)。但是关于整个“mokey business”的第一个问题也适用于我的案例,并且已通过模糊解析解决,如

dparser.parse("monkey 2010-07-10 love banana",fuzzy=True)
Run Code Online (Sandbox Code Playgroud)

最后,第二个包含很好的抓取正则表达式(几乎“模糊”)。

PS …

php regex algorithm heuristics date

5
推荐指数
1
解决办法
1953
查看次数

将 pandas 列按数字拆分为两个(包含时间)

我有一个数据框:

col_1
Agent AB 7:00 AM
Agent AB 7:00 AM
Cust XY 8:00 AM
Cust XY 9:00 AM
Agent AB 11:00 AM
Run Code Online (Sandbox Code Playgroud)

我想将其拆分为 2 列,以便将时间拆分为一个新列。

预期输出:

col_1        col_2
Agent AB     7:00 AM
Agent AB     7:00 AM
Cust XY      8:00 AM
Cust XY      9:00 AM
Agent AB     11:00 AM
Run Code Online (Sandbox Code Playgroud)

我研究并发现这可以使用:字符串切片来完成。

就像是:

df['col_2'] = df['col_1'].str[-8:-1]
Run Code Online (Sandbox Code Playgroud)

有没有更好的办法??

python pandas

3
推荐指数
2
解决办法
53
查看次数

从python中的字符串中提取日期

如何从"2015年11月1日的广告系列"中提取"20151101"(作为字符串)?

我读过这篇文章: 从Python中的字符串中提取日期 .但是当我从Match对象转换为字符串时,我遇到了困难.

python string date slice

1
推荐指数
1
解决办法
4513
查看次数

标签 统计

python ×4

pandas ×3

date ×2

algorithm ×1

datetime ×1

heuristics ×1

php ×1

regex ×1

slice ×1

string ×1