删除年份为 != Pandas 的所有行
Delete All Rows with Year != Pandas
我有一个巨大的熊猫 df,其中包含 1991-2021 年的每小时数据,我需要删除年份为 != 2021 或当前年份的所有行。在我的数据框中有一个“年”列,其中的年份从 1991 年到 2021 年不等,每小时数据。我在下面使用这行代码,但它似乎没有为数据帧 df1 做任何事情。有没有更好的方法来删除所有不等于 year == 2021 的行?:
trimmed_df1 = df1.drop(df1[df1.year != '2021'].index)
我的数据是 4532472 X 10 列 df,格式如下:
df1.columns.values
Out[20]:
array(['plant_name', 'business_name', 'business_code',
'maint_region_name', 'power_kwh', 'wind_speed_ms', 'mos_time',
'dataset', 'month', 'year'], dtype=object)
为什么不使用 .loc[]
调用 select 您想要的行而不是删除行?
trimmed_df1 = df1.loc[df1.year == '2021']
这应该可以完成工作:
>>> trimmed_df1 = df1.query(‘year != 2021’).reset_index()
也许您甚至不需要重置索引 - 这取决于您。
我有一个巨大的熊猫 df,其中包含 1991-2021 年的每小时数据,我需要删除年份为 != 2021 或当前年份的所有行。在我的数据框中有一个“年”列,其中的年份从 1991 年到 2021 年不等,每小时数据。我在下面使用这行代码,但它似乎没有为数据帧 df1 做任何事情。有没有更好的方法来删除所有不等于 year == 2021 的行?:
trimmed_df1 = df1.drop(df1[df1.year != '2021'].index)
我的数据是 4532472 X 10 列 df,格式如下:
df1.columns.values
Out[20]:
array(['plant_name', 'business_name', 'business_code',
'maint_region_name', 'power_kwh', 'wind_speed_ms', 'mos_time',
'dataset', 'month', 'year'], dtype=object)
为什么不使用 .loc[]
调用 select 您想要的行而不是删除行?
trimmed_df1 = df1.loc[df1.year == '2021']
这应该可以完成工作:
>>> trimmed_df1 = df1.query(‘year != 2021’).reset_index()
也许您甚至不需要重置索引 - 这取决于您。