【问题标题】:How to read csv file with date as one of the data?如何读取日期为数据之一的 csv 文件?
【发布时间】:2016-12-06 13:51:11
【问题描述】:

这些是我在 excel 和 csv 文件中的数据:

日期、时间、产品类型 2015-01-02,02:29:45 PM,卡片

我在下面尝试了这段代码,它适用于 excel 文件,但不适用于 CSV 文件。

import numpy as np
import pandas as pd

df = pd.read_excel('file.xlsx')
print(df.head())

我在读取 csv 文件时的代码与上述代码几乎相同,但出现错误。请帮忙。

import numpy as np
import pandas as pd
import datetime

df = pd.read_csv('file.csv', index_col='Date', parse_dates=True)
print(df.head())

错误消息: UnicodeDecodeError:“utf-8”编解码器无法解码位置 2 中的字节 0xa4:无效的起始字节

【问题讨论】:

  • 尝试传递encoding='utf-8': df = pd.read_csv('file.csv', index_col='Date', parse_dates=True, encoding='utf-8')
  • 我不是 Pandas 专家,但你试过 df = pd.DataFrame.from_csv() 吗?这就是我通常构建 DataFrames 的方式。
  • @EdChum : 仍然收到同样的错误
  • 您可能是某种 unicode BOM,您可以尝试'utf-16' 的编码类型,您也可以发布指向 csv 的链接吗?
  • @AndrewL:试过了,没用。

标签: python csv pandas time-series


【解决方案1】:

我已修改并删除了我的 csv 文件中的列名,并在下面使用了此代码。有用!

CSV 文件数据

    2015-01-02,02:29:45 PM,Cards
    2015-01-02,05:16:15 PM,Cards
    2015-01-02,05:48:46 PM,Cards
    2015-01-02,03:18:34 PM,Cards
    2015-01-02,05:22:55 PM,Cards

我的代码:

df = pd.read_csv('datacsv.csv', sep=',', parse_dates=[0], header=None,
                         names=['Date', 'Time', 'Value'])

print (df.head())

  Date         Time  Value
0 2015-01-02  02:29:45 PM  Cards
1 2015-01-02  05:16:15 PM  Cards
2 2015-01-02  05:48:46 PM  Cards
3 2015-01-02  03:18:34 PM  Cards
4 2015-01-02  05:22:55 PM  Cards

感谢你们的回复!

【讨论】:

    【解决方案2】:

    我不确定从文件中提取数据后您打算如何处理数据,因此如果您需要其他格式或其他内容,请告诉我。

    我假设您将始终使用 CSV 来处理此代码。下面的代码只是简单地打开您的文件和每一行,用逗号分隔,并附加到一个列表(每个索引是一行代码)以进行良好的组织。

    File = open("Filename.csv","r")
    
    Data = []
    for lines in File:
        Data.append([lines.split(",")])
    '[[Date,Time,Product Type, Date,Time,Cards],[Date2,,,],,,]
    

    【讨论】:

    • 我将使用上述日期作为时间序列。以日期为 x 轴,时间为 y 轴,产品类型为要绘制的点。
    猜你喜欢
    • 1970-01-01
    • 2016-11-09
    • 2017-10-16
    • 2012-12-04
    • 1970-01-01
    • 2022-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多