[英]Incorrect date format in CSV file converting to SQL Server Table with Python
[英]Converting date and time format when importing csv file in Python
我还没有找到类似问题的解决方案,所以我必须在这里给它一个 go。 我在记事本中导入一个 csv 文件,如下所示:
",""ItemName"""
"Time,""Raw Values"""
"7/19/2019 10:31:29 PM,"" 0"","
"7/19/2019 10:32:01 PM,"" 1"","
当我将它另存为新的 csv 时,我想要的是重新格式化日期/时间和相应的值(分析软件需要):分号作为分隔符,最后很重要,我真的不需要一个 header。
2019-07-19 22:31:29;0;
2019-07-19 22:32:01;1;
这是它在 Python 中的样子:
Item1 = pd.read_csv(r'.\Datafiles\ItemName.csv')
Item1
#Output:
# ,"ItemName"
# 0 Time,"Raw Values"
# 1 7/19/2019 10:31:29 AM," 0",
# 2 7/19/2019 10:32:01 AM," 1",
valve_G1.dtypes
# ,"ItemName" object
# dtype: object
我尝试过使用日期时间但没有任何运气,但我不知道的数据类型可能有些可疑。
原则上你要的是读到DataFrame,转换datetime列再导出df到csv。 我认为您需要去掉引号字符才能正确导入。 您可以通过将文件内容读取为字符串,替换“”,并将该字符串提供给 pandas.read_csv 来实现。EX:
import os
from io import StringIO
import pandas as pd
# this is just to give an example:
s='''",""ItemName"""
"Time,""Raw Values"""
"7/19/2019 10:31:29 PM,"" 0"","
"7/19/2019 10:32:01 PM,"" 1"","'''
f = StringIO(s)
# in your script, make f a file pointer instead, e.g.
# with open('path_to_input.csv', 'r') as f:
# now get rid of the "
csvcontent = ''
for row in f:
csvcontent += row.replace('"', '')
# read to DataFrame
df = pd.read_csv(StringIO(csvcontent), sep=',', skiprows=1, index_col=False)
df['Time'] = pd.to_datetime(df['Time'])
# save cleaned output as ;-separated csv
dst = 'path_where_to_save.csv'
df.to_csv(dst, index=False, sep=';', line_terminator=';'+os.linesep)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.