检查路径列表中的某些列并更改其数据类型?

时间:2018-11-20 14:30:38

标签: python pandas

在一个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

2 个答案:

答案 0 :(得分:2)

converters中检查read_csv

pd.read_csv('Temp.csv',converters={'DEC_DATE':pd.to_datetime})

答案 1 :(得分:0)

我想您会得到KeyError,因为您无法访问不存在的列。您应该改用indf.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'])