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

2024-10-04 01:37:07 发布

您现在位置:Python中文网/ 问答频道 /正文

在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

Tags: 文件csvto数据路径类型df列表
2条回答

我猜您得到了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'])                

如果只有两列,则可以使用两个显式ifs来获得所需的完整结果:

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'])

read_csv中检查converters

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

相关问题 更多 >