python - 将文件头解析为 Python/pandas 中的日期对象

标签 python csv pandas

如何将 csv 文件中的标题解析为日期?我尝试在 pandas.read_csv 函数中使用一些参数:

import pandas as pd
data = pd.read_csv(path, header=1, infer_datetime_format=1, parse_dates=True)

但是,除了第 2 到第 6 列的标题之外,数据中没有任何内容被格式化为日期。

我尝试使用索引来parse_dates,例如parse_dates=columns[2,3,4,5,6],但它会引发错误,因为 columns 在此阶段无法识别。

原始 csv:

Name,Adm.,1980-12-31,1992-12-31,2002-05-20,2011-03-31,2015-12-31,Area
Aleksandrów Łódzki,LOD,"17.000","20.251","20.220","21.085","21.354",1382
Andrychów,MAL,"19.400","23.144","22.187","21.530","20.940",1033

阅读以下内容:

print(data[0:2])

Aleksandrów Łódzki  LOD     17.000  20.251  20.220  21.085  21.354  1382
Andrychów   MAL     19.400  23.144  22.187  21.530  20.940  1033 1
Augustów    POD     24.300  29.089  29.705  30.802  30.400  8090 2

编辑

对不起。我想删除这个帖子。我的 csv 文件中有错误。标题应如下所示:

Miasto,Adm,“1980-12-31”,“1992-12-31”,“2002-05-20”,“2011-03-31”,“2015-12-31”,区域

即,日期中带有引号。然后一切就自动好了。我的错。对于那些无法访问 csv 文件的人来说,这可能是一个挑战。哈哈。

最佳答案

实现您想要的效果的一种方法是在读取 csv 文件后将列重命名为:

df = pd.read_csv(path, infer_datetime_format=1, parse_dates=True)
columns = {}
for col in df.columns:
    try:
        columns[col] = pd.to_datetime(col, infer_datetime_format=True)
    except ValueError:
        pass
df.rename(columns=columns, inplace=True)

关于python - 将文件头解析为 Python/pandas 中的日期对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42472418/

相关文章:

python - 如何在多线程模式下使用 Gunicorn 运行 Flask

python - 谁能告诉我为什么以下 Python 代码在输出中生成 None ?

php - MySQL 将数据加载到两个相关表中

python - 将操作应用于结果中具有多列的多列

python - 尝试重载运算符时出错 "/"

python - pandas.read_csv 读取非常原始的 CSV 文件(前三个数字编译成 datetime.datetime 对象)的正确设置是什么?

python - 从 CSV 中删除空白行?

python - 如何为 pandas 数据框中的切片赋值

python - 在 pandas groupby 对象中查找和映射重复项

python - 如何在 Python 3.x 中执行循环函数并输出总和?