python - 使用 Pandas 组合列

标签 python python-2.7 csv pandas

我正在尝试合并 csv 文件的日期和时间列,并使用 pandas 将它们转换为时间戳。

这是读入数据框时我的 csv 文件的示例

Dataframe after reading

Id     Station        Month       Parameter    Date        From       To
1.0    ANANDVIHAR     Dec         ?PM2.5       2015-12-01  ?00:00:00  ?00:59:00

以下代码:-

df['DateTime'] = df.apply(lambda row: datetime.datetime.strptime(row['Date']+ ':' + row['From'], '%Y.%m.%d:%H:%M:%S'), axis=1)

出现以下错误:-

Traceback (most recent call last):

  File "project101.py", line 36, in <module>
    df['DateTime'] = df.apply(lambda row: datetime.datetime.strptime(row['Date']+ ':' + row['From'], '%Y.%m.%d:%H:%M:%S'), axis=1)

  File "c:\Python27\lib\site-packages\pandas\core\frame.py", line 4133, in apply
    return self._apply_standard(f, axis, reduce=reduce)

 File "c:\Python27\lib\site-packages\pandas\core\frame.py", line 4229, in _apply_standard
    results[i] = func(v)

  File "project101.py", line 36, in <lambda>
    df['DateTime'] = df.apply(lambda row: datetime.datetime.strptime(row['Date']+ ':' + row['From'], '%Y.%m.%d:%H:%M:%S'), axis=1)

  File "c:\Python27\lib\_strptime.py", line 332, in _strptime
    (data_string, format))

ValueError: ("time data '2015-12-01:\\xa000:00:00' does not match format '%Y.%m.%d:%H:%M:%S'", u'occurred at index 0')

最佳答案

你可以简单地做:

df['DateTime'] = pd.to_datetime(df['Date'].str.cat(df['From'], sep=" "),
                                format='%Y-%m-%d \\xa%H:%M:%S', errors='coerce')

格式说明符中的 '\\xa' 将处理问号。这些标记用于误解的文字,可能看起来像 '\\xa'

关于python - 使用 Pandas 组合列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40770749/

相关文章:

python - 在 Sqlalchemy/Postgres 中使用绑定(bind)参数执行 WHERE IN

python - 调试 sys.path 的修改

python - 运行一个以目录名(由用户给出)作为参数的 python 脚本

java - jep 在 java 中使用 scikit 模型

python - 如何使用 Python 中的日志打印列表项 + 整数/字符串

Python csv 阅读 - 如何仅向字符串添加引号

python - Django 异常未注册的命名空间

python - 导入错误 : No module named azure. storage.blob

python - 具有恒定间距的 Pandas 数据框 csv?

ruby - 使用 Ruby 中的转换器从 CSV 列中删除回车符