我正在将csv文件(SimResults_Daily.csv)读入pandas,其结构如下:
"abc": "foo // bar"
等。
由于pandas parse_dates无法读取日期时间格式,我发现我可以使用命令:#, Job_ID, Date/Time, value1, value2,
0, ID1, 05/01 24:00:00, 5, 6
1, ID2, 05/02 24:00:00, 6, 15
2, ID3, 05/03 24:00:00, 20, 21
。
我的代码目前是:
str.replace('24:','00:')
我应该在代码中的哪个位置实现dateparse = lambda x: pd.datetime.strptime(x, '%m-%d %H:%M:%S')
df = pd.read_csv('SimResults_Daily.csv',
skipinitialspace=True,
date_parser=dateparse,
parse_dates=['Date/Time'],
index_col=['Date/Time'],
usecols=['Job_ID',
'Date/Time',
'value1',
'value2',
header=0)
命令?
答案 0 :(得分:2)
您可以使用:
replace
还可以添加另一个带有year
- dateparse = lambda x: x.replace('24:','00:').replace(' ','/1900 ')
df = pd.read_csv(io.StringIO(temp),
skipinitialspace=True,
date_parser=dateparse,
parse_dates=['Date/Time'],
index_col=['Date/Time'],
usecols=['Job_ID', 'Date/Time', 'value1', 'value2'],
header=0)
print (df)
Job_ID value1 value2
Date/Time
1900-05-01 ID1 5 6
1900-05-02 ID2 6 15
1900-05-03 ID3 20 21
的解决方案:
dateparse = lambda x: x.replace('24:','00:').replace(' ','/2016 ')
df = pd.read_csv(io.StringIO(temp),
skipinitialspace=True,
date_parser=dateparse,
parse_dates=['Date/Time'],
index_col=['Date/Time'],
usecols=['Job_ID', 'Date/Time', 'value1', 'value2'],
header=0)
print (df)
Job_ID value1 value2
Date/Time
2016-05-01 ID1 5 6
2016-05-02 ID2 6 15
2016-05-03 ID3 20 21
@SessionAttributes