python - 将 pandas 中的列转换为具有特定格式的 to_datetime
问题描述
我有以下代码:
import pandas as pd
import datetime
df = pd.read_html("https://en.wikipedia.org/wiki/List_of_presidents_of_the_United_States")[1]
df = df[:-1]
df.rename(columns={'Presidency[a].1':"Term"}, inplace = True)
df[['Start', 'End']] = df.Term.str.split("–", expand = True)
df['Start'] = pd.to_datetime(df['Start'].str.strip(), format = '%B %d, %Y', dayfirst = False)
当我运行此代码时,我收到以下错误:
ValueError: unconverted data remains: [i]
请指教
解决方案
当我检查数据时,它有一些嘈杂的条目,例如:
'March 4, 1913',
'March 4, 1913',
'March 4, 1921',
'August 2, 1923[r]',
'August 2, 1923[r]',
您将不得不通过拆分来清除它们
df.Start = pd.Series([i.split('[')[0] for i in df.Start.tolist()])
然后它应该可以正常工作。查看输出:
In [28]: df.Start = pd.to_datetime(df['Start'].str.strip(), format = '%B %d, %Y', dayfirst = False)
In [29]: df.Start
Out[29]:
0 1789-04-30
1 1789-04-30
2 1797-03-04
推荐阅读
- angular - 基于jhipster的应用添加sitemap
- r - 根据另一列的字符串内容创建新列
- authentication - React Navigation 5 , How to use this.props.navigation.navigate() inside a function which use axios
- android - Android studio giving errors in setting up existing Google Flutter project
- flutter - TextFormFields in flutter
- java - Android/JAVA:单独文件中的内部 AsyncTask
- java - 用流 Java 重写 SortedMap
- angular - 带有搜索框绑定的 Angular FormArray
- c - 如何在 .h 文件中组合汇编函数?
- vue.js - 定义js和css中使用的变量