问题出在第22行:
if start_date <= data_entries.iloc[j, 1] <= end_date:
在这里,我想将start_date
和end_date
部分与data_entries.iloc[j, 1]
部分进行比较,后者正在访问pandas数据帧的一列。我使用
data_entries['VOUCHER DATE'] = pd.to_datetime(data_entries['VOUCHER DATE'], format="%m/%d/%Y")
但我不确定如何将其转换为日期。
import pandas as pd
import datetime
entries_csv = "C:\\Users\\Pops\\Desktop\\Entries.csv"
data_entries = pd.read_csv(entries_csv)
data_entries['VOUCHER DATE'] = pd.to_datetime(data_entries['VOUCHER DATE'], format="%m/%d/%Y")
start_date = datetime.date(2018, 4, 1)
end_date = datetime.date(2018, 10, 30)
for j in range(0, len(data_entries)):
if start_date <= data_entries.iloc[j, 1] <= end_date:
print('Hello')
这会将其转换为日期:
但是我不建议这样过滤。 这要快得多
读这个article
只需使用
pd.Timestamp
对象而不进行任何转换:说明
不要在熊猫系列中使用
datetime.datetime
或datetime.date
对象。这是低效的,因为你失去了矢量化的功能。pd.Timestamp
对象的好处是可以利用矢量化功能进行计算。如here所述:相关问题 更多 >
编程相关推荐