我收到了一个.csv文件,有2列(简化)。一列包含数据,另一列包含文件名。不幸的是,此文件名可能不正确,我必须通过比较日期和文件名来确定。
我想要什么
# initial situation
d = {
'call_date': ["20200102-09", "20191203-04", "20200103-10"],
'filename': ["20200102-09xx.wav", "20200102-10yy.wav", "20200103-10zz.wav"]
}
df = pd.DataFrame(data=d)
print(df)
# call_date filename
# 0 20200102-09 20200102-09xx.wav
# 1 20191203-04 20200102-10yy.wav
# 2 20200103-10 20200103-10zz.wav
...
# desired result
print(pd.Series([True, False, True]))
# 0 True
# 1 False
# 2 True
# dtype: bool
有了想要的结果,我可以计算出我有多少个错误的文件,并过滤DataFrame以仅包含有效的条目。
我尝试过什么
通常,比较的工作方式如下:
# True / False
df["call_date"] == df["filename"]
# filter DF
df[df["call_date"] == df["filename"]]
熊猫有一只熊猫。系列.str.startswith函数,但是它仅适用于单个字符串,而不适用于诸如以下的内容:
df["filename"].str.startswith(df["call_date"])
# 0 NaN
# 1 NaN
# 2 NaN
# Name: filename, dtype: float64
问题
如何进行行间比较,比较列“文件名”中的元素是否以列“call_date”中找到的字符串开头?
慕码人8056858
FFIVE
相关分类