Python Pandas筛选DataFrame时双条件为何未同时生效?
Pandas过滤最早年月行的问题排查
我编写了两段Python Pandas代码用于过滤数据中最早年份和月份的行。方法1使用逻辑运算符&连接条件,但运行后发现只要第一个条件满足就会过滤行,无论第二个条件是否成立;方法2能得到正确输出。说明:Excel文件中的"Year"和"Month"列格式为"General",我也尝试过Original_File_df.query方法。
import pandas as pd Original_File_df = pd.read_excel(open("6 Months.xlsx", "rb"), sheet_name = 0) New_Data_File_df = pd.read_excel(open("1 Month.xlsx", "rb"), sheet_name = 0) #Method 1 Start Original_File_YMMin = pd.to_datetime(Original_File_df["Year"].astype(str) + "-" + Original_File_df["Month"].astype(str), format='%Y-%m').min() Original_File_df = Original_File_df[(Original_File_df["Year"] != Original_File_YMMin.year) & (Original_File_df["Year"] != Original_File_YMMin.month)] #Method 1 End #Method 2 Start Original_File_df["YearMonth"] = pd.to_datetime(Original_File_df["Year"].astype(str) + "-" + Original_File_df["Month"].astype(str), format='%Y-%m') Original_File_YMMin = Original_File_df["YearMonth"].min() Original_File_df = Original_File_df[Original_File_df["YearMonth"] != Original_File_YMMin] #Method 2 End Original_File_df = Original_File_df._append(New_Data_File_df, ignore_index=True) print(Original_File_df)

内容的提问来源于stack exchange,提问作者Dhay
相关产品推荐
相关产品推荐

