我有下面的代码,我正在重新学习python。我正试着用面罩来提取五月份所有的航班。
然而,在我打印后,应用掩码,我会收到一个空的数据帧。我是不是遗漏了什么,这是一个csv文件FYI。
包括桌子。
def filter_dataset(flight_data):
'''
processing dataset for may flights
'''
filtered_set = flight_data[['MONTH', 'ORIGIN', 'ORIGIN_CITY_NAME',
'ORIGIN_STATE_NM', 'DEST', 'DEST_CITY_NAME',
'DEST_STATE_NM', 'CANCELLED', 'CANCELLATION_CODE', 'DIVERTED']]
month_mask = filtered_set['MONTH'] == 5
new_set = filtered_set[month_mask]
print(new_set)
YEAR MONTH DAY_OF_MONTH DAY_OF_WEEK FL_DATE ... DEST_STATE_ABR DEST_STATE_NM CANCELLED CANCELLATION_CODE DIVERTED
563732 2022 1 25 2 1/25/2022 12:00:00 AM ... GA Georgia 0.0 NaN 0.0
563733 2022 1 26 3 1/26/2022 12:00:00 AM ... GA Georgia 0.0 NaN 0.0
563734 2022 1 27 4 1/27/2022 12:00:00 AM ... GA Georgia 0.0 NaN 0.0
563735 2022 1 28 5 1/28/2022 12:00:00 AM ... GA Georgia 0.0 NaN 0.0
563736 2022 1 29 6 1/29/2022 12:00:00 AM ... GA Georgia 0.0 NaN 0.0发布于 2022-07-26 22:50:45
你的功能应该是正确的。也许你有dtype问题。例如,不能将str与int进行比较。
解决方案:检查df列的D型
df.dtypes例子:月份: str和月份: int
df = pd.DataFrame({'month': list(range(12)) * 2, 'randint': np.random.randint(0, 29, size=24)})
df.month = df.month.astype(str)
dfmask = df.month == 2
print(df[dfmask])
df.month = df.month.astype(int)
dfmask = df.month == 2
print(df[dfmask])https://stackoverflow.com/questions/73130203
复制相似问题