Pandas 日期为字符串时的 KeyError 日期
Pandas KeyError Date when date is a string
我有一个包含数十万行的制表符分隔的 .txt 文件。其中一列是 'date',日期格式是“14JAN2020”,即 non-standard。我正在尝试将其转换为标准日期时间。到目前为止我的代码:
import pandas as pd
import datetime as dt
import numpy as np
import matplotlib.pyplot as plt
with open('C:/Path/to/file/myfile.txt') as completionFile:
completionFile.read()
df = pd.read_csv('C:/Path/to/file/myfile.txt', sep='\t', header=0)
df.head()
job-id | employee_id |日期 | job_type | job_time
1234 | ABCD| 2020 年 1 月 14 日 |富 |酒吧
df["date"] = df['date'].str.replace(r'^((?:\D*\d){2})', r'-')
df["date"] = df['date'].str.replace(r'^((?:[^a-zA-Z0-9]*[a-zA-Z0-9]){5})(?=.+)', r'-')
df["date"] =pd.to_datetime(df['date'])
当我这样做时,我得到 KeyError:'date'。我将 'date' 作为列 header 而不是索引,所以我很纠结为什么我会在这里收到此错误
使用 pd.to_datetime 将日期强制转换为日期时间并声明日期时间格式。
print(df)
job-id employee_id date job_type job_time
0 1234 ABCD 14JAN2020 foo bar
df['date']=pd.to_datetime(df['date'])
#df['date']=pd.to_datetime(df['date'], format='%Y%m%d')
print(df)
job-id employee_id date job_type job_time
0 1234 ABCD 2020-01-14 foo bar
我有一个包含数十万行的制表符分隔的 .txt 文件。其中一列是 'date',日期格式是“14JAN2020”,即 non-standard。我正在尝试将其转换为标准日期时间。到目前为止我的代码:
import pandas as pd
import datetime as dt
import numpy as np
import matplotlib.pyplot as plt
with open('C:/Path/to/file/myfile.txt') as completionFile:
completionFile.read()
df = pd.read_csv('C:/Path/to/file/myfile.txt', sep='\t', header=0)
df.head()
job-id | employee_id |日期 | job_type | job_time
1234 | ABCD| 2020 年 1 月 14 日 |富 |酒吧
df["date"] = df['date'].str.replace(r'^((?:\D*\d){2})', r'-')
df["date"] = df['date'].str.replace(r'^((?:[^a-zA-Z0-9]*[a-zA-Z0-9]){5})(?=.+)', r'-')
df["date"] =pd.to_datetime(df['date'])
当我这样做时,我得到 KeyError:'date'。我将 'date' 作为列 header 而不是索引,所以我很纠结为什么我会在这里收到此错误
使用 pd.to_datetime 将日期强制转换为日期时间并声明日期时间格式。
print(df)
job-id employee_id date job_type job_time
0 1234 ABCD 14JAN2020 foo bar
df['date']=pd.to_datetime(df['date'])
#df['date']=pd.to_datetime(df['date'], format='%Y%m%d')
print(df)
job-id employee_id date job_type job_time
0 1234 ABCD 2020-01-14 foo bar