python - pandas 日期列中的不同格式 - 列与行的数据类型

标签 python regex pandas date types

我有一个 pd DataFrame 列,其中包含不同格式的日期值。例如“YYYY-MM-DD hh:mm:ss”和“DD.MM.YYYY”甚至“DD.MM”。我想将它们全部转换为一种格式(例如“YYYY-MM-DD”)并尝试过(除此之外)

df[~df.date.str.contains('(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})')] 

查找日期未写为“YYYY-MM-DD hh:mm:ss”的行。然而,这是行不通的。

因此我检查了列的类型

df['date'].dtype   #prints dtype('O')

然后我检查了

for index, row in df.iterrows():
    print(type(row['date']))

并收到了混合打印,例如“datetime.datetime”类和“str”类

我很困惑。当列是“对象”数据类型时,为什么我并不总是得到“str”?有人知道如何使正则表达式工作吗?

最佳答案

def findIndex(x):
    try:
        pd.to_datetime(x).strftime('%m/%d/%Y')
        return
    except:
        return True


df.date.apply(lambda x: findIndex(x))

现在您可以获得所有奇怪格式的索引。希望这会有所帮助。

关于python - pandas 日期列中的不同格式 - 列与行的数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53671706/

相关文章:

python - 运行 TestCase 时出现 AssertionError : 400 ! = 201

c# - 文本字段的条件验证

python - 如何在操作中用以前的值填充 NaN 值?

python-3.x - 无法使用 Keras 和 Sklearn 将字符串列转换为分类矩阵

python - 如何在python中使字符串中的字符串可选

python - 计数 1's in a n x n array of 0' 和 1

python - 作为协程运行 aiohttp 应用程序

java - java中两边带通配符的双向字符串匹配

c# - 如果所有单词都包含特定符号,则为正则表达式

python - Pandas Dataframe 中的动态索引字符串切片