我想知道是否可以根据列的类型有条件地使用转换器。例如,如果您的数据集由两列组成,其中第一列可以是整数或时间戳,那么如果文件最终具有时间戳列并且如果列具有整数则避免调用转换器,则能够有条件地使用转换器将是很好的。值。
当数据已经加载时,可以在read_csv
之外完成,但效率可能会降低。
答案 0 :(得分:2)
read_csv docs表示您可以使用date_parser
参数传递自定义日期解析函数。
所以你可以这样做:
from datetime import datetime
import pandas as pd
from dateutil.parser import parse
def parse_date_or_ts(data):
try:
return parse(data)
except ValueError:
# let's assume data is a utc timestamp now
return datetime.utcfromtimestamp(int(data))
df = pd.read_csv('data.csv',
parse_dates={'date': [0]}, # index 0 is our date/ts mixed column
date_parser=parse_date_or_ts)