我正在尝试使用包含双引号半列的半列分隔符的2列csv文件(error.csv):
col1;col2
2016-04-17_22:34:25.126;"Linux; Android"
2016-04-17_22:34:25.260;"{"g":2}iPhone; iPhone"
Run Code Online (Sandbox Code Playgroud)
而我正在努力:
logs = pd.read_csv('error.csv', na_values="null", sep=';',
quotechar='"', quoting=0)
Run Code Online (Sandbox Code Playgroud)
我明白问题来自于在第3行的双引号中加了双引号"g",但我无法弄清楚如何处理它.有任何想法吗 ?
您可能需要预处理数据,使其符合预期的 CSV 格式。我怀疑pandas仅仅通过改变一两个参数就能解决这个问题。
如果只有两列,并且第一列从不包含分号,那么您可以在第一个分号上拆分行:
records = []
with open('error.csv', 'r') as fh:
# first row is a header
header = next(fh).strip().split(';')
for rec in fh:
# split only on the first semi-colon
date, dat = rec.strip().split(';', maxsplit=1)
# assemble records, removing quotes from the second column
records.append((date, dat.strip('"')))
# create a data frame
df = pandas.DataFrame.from_records(records, columns=header)
Run Code Online (Sandbox Code Playgroud)
datetime如果您希望第一列包含正确的日期而不是字符串,则必须使用模块手动解析日期。
| 归档时间: |
|
| 查看次数: |
561 次 |
| 最近记录: |