python - 如何根据两个不同列的值从 pandas df 中删除行
问题描述
我正在阅读一个包含飞行记录的大型 CSV 文件,我想删除所有没有“Origin_Airport_Code”或“Destination_Airport_Code”作为 ORD 的行。之后,我还想将“年份”和“航班日期”列合并到日期时间中,我想按日期时间索引航班。
我不确定要尝试什么,因为我是 python 和 pandas 的新手
data = pd.read_csv("groundhog_query.csv")
data.columns
Index(['Year', 'Flight_Date', 'Day_Of_Year', 'Unique_Carrier_ID', 'Airline_ID',
'Tail_Number', 'Flight_Number', 'Origin_Airport_ID', 'Origin_Market_ID',
'Origin_Airport_Code', 'Origin_State', 'Destination_Airport_ID',
'Destination_Market_ID', 'Destination_Airport_Code', 'Dest_State',
'Scheduled_Dep_Time', 'Actual_Dep_Time', 'Dep_Delay', 'Pos_Dep_Delay',
'Scheduled_Arr_Time', 'Actual_Arr_Time', 'Arr_Delay', 'Pos_Arr_Delay',
'Combined_Arr_Delay', 'Can_Status', 'Can_Reason', 'Div_Status',
'Scheduled_Elapsed_Time', 'Actual_Elapsed_Time', 'Carrier_Delay',
'Weather_Delay', 'Natl_Airspace_System_Delay', 'Security_Delay',
'Late_Aircraft_Delay', 'Div_Airport_Landings', 'Div_Landing_Status',
'Div_Elapsed_Time', 'Div_Arrival_Delay', 'Div_Airport_1_ID',
'Div_1_Tail_Num', 'Div_Airport_2_ID', 'Div_2_Tail_Num',
'Div_Airport_3_ID', 'Div_3_Tail_Num', 'Div_Airport_4_ID',
'Div_4_Tail_Num', 'Div_Airport_5_ID', 'Div_5_Tail_Num'],
dtype='object')
这就是列的组织方式。我可以做一些 if than 语句或循环吗?谢谢您的帮助
解决方案
根据这两列过滤行,删除起点或终点等于 ORD 的拖链:
data = data[(data['Origin_Airport_Code'] != 'ORD']) | (data['Destination_Airport_Code'] !='ORD'])]
关于 group by,我没有按照您的 group by 的结果进行操作,但在这里您可以看到 groupby 函数在 pandas 中的工作原理: https ://pandas.pydata.org/pandas-docs/stable/reference /api/pandas.DataFrame.groupby.html
推荐阅读
- asynchronous - 如何使 Polymer 2.x 函数异步
- json - 由于 json 指针,Sphinx 无法包含我的 JSON 定义文件
- python - 将嵌套 JSON 转换为数据框
- javascript - 查看 Chrome 控制台时,video.min.js 中出现“拒绝从 blob 创建工作者”错误
- javascript - 如何修复在法语日期时间中添加的额外时间段?
- excel - 如果标准,如何将特定单元格从一张纸复制到另一张会议
- php - 如何以更好的方式使用 mysql 来缩短加载时间?
- json - awesome-typescript-loader 不接受 JSON 中的更改
- python - 列表索引越界和堆栈溢出错误
- sql - SQL-Server 我对使用 datepart 进行工作日计算感到疯狂