You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CSV日期相关列合并删除方法,Pandas报'无Year属性'错求助

问题解答

一、你的代码报错修复与需求实现

报错原因

报错'Dataframe' object has no attribute 'Year'是因为你将所有列名转为小写后,代码中仍使用大写的Year调用列,Pandas无法匹配到对应列名。此外代码还有几处逻辑错误,以下是修正后的完整代码:

import pandas as pd 
def airport_data(cur_file, airport_code):
    # 读取传入路径的CSV文件
    airportsearch = pd.read_csv(cur_file)
    
    # 筛选出包含目标机场的行(origin或destination为指定机场)
    airportsearch = airportsearch[
        airportsearch['origin_airport'].isin([airport_code]) | 
        airportsearch['destination_airport'].isin([airport_code])
    ]
    
    # 统一列名为小写
    airportsearch.columns = airportsearch.columns.str.lower()
    
    # 合并year、month、day为date列
    airportsearch['date'] = pd.to_datetime(airportsearch[['year', 'month', 'day']])
    
    # 删除原有的年、月、日列
    airportsearch.drop(columns=['day', 'month', 'year'], axis=1, inplace=True)
    
    return airportsearch

# 调用示例
processed_data = airport_data('/work/Data.airports.csv', 'SFO')
print(processed_data.head())

关键修正点

  • 匹配列名大小写:转小写后统一使用year(小写)调用列
  • 修正数据筛选:用布尔索引替代错误的dropna用法,精准筛选目标机场数据
  • 正确合并日期:pd.to_datetime支持直接传入包含年、月、日的DataFrame,自动生成日期类型
  • 有效删除原列:添加inplace=True让删除操作直接作用于原DataFrame,避免数据丢失
  • 复用函数参数:使用传入的cur_file和airport_code,避免硬编码,提升代码灵活性

二、通用需求:合并CSV的date、time、year列为新日期列并删除原列

如果CSV中包含year(年)、date(日/月日)、time(时分秒)三列,可通过以下方式合并为完整的日期时间列:

方法1:直接拼接字符串转日期

import pandas as pd

df = pd.read_csv('your_file.csv')
# 拼接年、日、时间字符串,转为日期时间类型
df['full_datetime'] = pd.to_datetime(
    df['year'].astype(str) + '-' + df['date'].astype(str) + ' ' + df['time']
)
# 删除原列
df.drop(columns=['year', 'date', 'time'], axis=1, inplace=True)

方法2:指定列参数(若date为月日格式)

如果date列是MM-DD格式,可直接传入列组合:

df['full_datetime'] = pd.to_datetime({
    'year': df['year'],
    'month': df['date'].str.split('-').str[0],
    'day': df['date'].str.split('-').str[1],
    'hour': df['time'].str.split(':').str[0],
    'minute': df['time'].str.split(':').str[1]
})
df.drop(columns=['year', 'date', 'time'], axis=1, inplace=True)

内容的提问来源于stack exchange,提问作者mlm.r

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 07:46:00