# df的symbol列值为列表, 将其转换成多行数据
import pandas as pd
import numpy as np
df.reindex(df.index.repeat(df.symbol.str.len())).assign(symbol=np.concatenate(df.symbol.values))
转换前
转换后
def to_date(date, symbol):
try:
return parse(str(date)).strftime("%Y-%m-%d")
except:
raise (f"券单{symbol}日期格式错误:{date}")
def df_format_row(start_date, end_date, symbol):
start_date = to_date(start_date, symbol)
end_date = to_date(end_date, symbol)
return start_date, end_date
# 针对df进行格式校验
df[["start_date", "end_date"]] = df.apply(
lambda row: df_format_row(row["start_date"], row["end_date"], row["symbol"]), axis=1, result_type="expand"
)
https://www.jianshu.com/p/1eaf89990ce7