在一个csv文件列表(完整路径)中,我想检查仅存在于大约一个数据集中的某些列,但是我不知道哪个列,所以我要检查:
如果找到了列“ DEC_DATE
”和“ KYR_DATE
”,则应将其更改为日期类型。
代码:
for i in li: #list with paths of csv's
df = pd.read_csv(i)
if df['DEC_DATE]: # if csv that has DEC_DATE column found, turn it to date type.
df['DEC_DATE'] = pd.to_datetime(df['DEC_DATE']) # same for the other column
答案 0 :(得分:2)
在converters
中检查read_csv
pd.read_csv('Temp.csv',converters={'DEC_DATE':pd.to_datetime})
答案 1 :(得分:0)
我想您会得到KeyError
,因为您无法访问不存在的列。您应该改用in
和df.columns
:
for i in li: #list with paths of csv's
df = pd.read_csv(i)
if 'DEC_DATE' in df.columns:
df['DEC_DATE'] = pd.to_datetime(df['DEC_DATE'])
如果只有两列,则可以使用两个显式的if来获取所需的完整结果:
for i in li:
df = pd.read_csv(i)
if 'DEC_DATE' in df.columns:
df['DEC_DATE'] = pd.to_datetime(df['DEC_DATE'])
if 'KYR_DATE' in df.columns:
df['KYR_DATE'] = pd.to_datetime(df['KYR_DATE'])