【发布时间】:2020-04-10 09:11:34
【问题描述】:
我必须处理一个结构如下所示的数据框:
print (df)
2012-02-23~2012-02-29 2012-03-01~2012-03-08
Team A 213 3213
Team B 321 3213
我正在尝试修改列名以提取字符 ~ 之后的日期部分。
df = pd.read_excel('test.xlsx')
df.columns = df.columns.str.extract(r'~(.*)')
df
我正在使用上面的代码,但是我得到的结果如下所示:
print (df)
(2012-02-29,) (2012-03-08,)
Team A 213 3213
Team B 321 3213
问题是命令来自哪里?以及为什么每列都有 (),我的目标是让表格如下所示并将日期类型转换为日期戳。
2012-02-29 2012-03-08
Team A 213 3213
Team B 321 3213
【问题讨论】:
-
我注意到了,但如果您想提取日期(根据您的问题),请注意 2012-02-35 不是有效日期。这是一个错字吗?还是您在处理错误数据?
-
@JvdV - 我猜,所以在文本版本中我将其更改为
2012-02-29 -
@JvdV 是文本,怎么改成日期时间?
-
首先,让我们知道这是拼写错误还是您正在处理显示无效日期的错误数据?如果它不是一个有效的日期,它应该是什么?例如
2012-2-29或2012-3-6等等.. 或者@jezrael 所做的更改是否正确? -
这里我觉得pd.to_datetime就够了,我只需要传入格式参数
标签: regex python-3.x pandas