【发布时间】:2015-11-10 07:39:08
【问题描述】:
我有一个大的 DataFrame,类似于
import pandas as pd
sqldate = pd.Series(["2014-0-1", "2015-10-10", "1990-23-2"])
pdf = pd.Series(["2014.pdf", "2015.pdf", "1999.pdf"])
df = pd.DataFrame({"sqldate":sqldate, "pdf": pdf})
我想创建一个布尔列,指示 sqldate 的年份是否与 pdf 名称的年份相同。
forloop 很容易做到这一点的另一种情况,但我想对其进行矢量化以提高速度/清洁度。但我不知道怎么做。
我尝试了更简单的方法,甚至只是制作了一个 df['newcol'] 并尝试从日期中删除左边的四个字符。像 df['newcol'] = df['sqldate'][0:4] 但失败了。它只生成 newcol = sqldate 的前四行,其余行 Nan,因为它将 [0:4] 解释为索引选择器。
对于在数据帧上使用操纵字符串值的更优雅、矢量化的方式有什么建议吗?
【问题讨论】: