我正在使用一個資料框,該資料框包含從 2013 年 2 月到 2022 年 5 月的每日資料,并具有以下格式:
Unnamed: 0 prod und proc tipo min mcom max merc date year month day
0 0 Bacalhau Cx.25Kg NOR Saith NaN 437.50 NaN Est 2013/02/01 2013 2 1
1 1 Camarao Kg NaN 7 Barba NaN NaN NaN Sin 2013/02/01 2013 2 1
2 2 Camarao com casca Kg NaN Grande NaN NaN NaN Sin 2013/02/01 2013 2 1
3 3 Camarao com casca Kg NaN Medio NaN NaN NaN Sin 2013/02/01 2013 2 1
4 4 Camarao com casca Kg NaN Pequeno NaN NaN NaN Sin 2013/02/01 2013 2 1
5 5 Peixe de agua salgada Kg RS Albacora 7.80 10.00 10.00 Est 2013/02/01 2013 2 1
6 6 Peixe de agua salgada Kg RS-SC Anchova 8.80 8.80 9.00 Est 2013/02/01 2013 2 1
7 7 Peixe de agua salgada Kg RS-SC Castanha NaN 5.00 NaN Est 2013/02/01 2013 2 1
8 8 Peixe de agua salgada Kg RS-SC Cavalinha 4.00 4.00 4.38 Est 2013/02/01 2013 2 1
9 9 Peixe de agua salgada Kg RS-SC Cioba 15.98 15.98 16.50 Est 2013/02/01 2013 2 1
進行解釋性分析后,我意識到必須洗掉某些日期。這些資料在行中,月份值為“2”,日期值為“29”,年份值為“2013”??、“2014”、“2015”、“2017”、“2018”、“2019” 、“2021”和“2022”。
如何逐行洗掉它會污染我試圖根據以下命令使用 for 回圈洗掉它的代碼:
anos = [2013,2014,2015,2017,2018,2019,2021,2022]
for df['year'].values in anos:
df = df.drop(df[(df['month'] == 2) & (df['day'] == 29)].index, inplace= True)
但它沒有用。有人可以幫助我嗎?
uj5u.com熱心網友回復:
你不需要回圈它,所有都可以在一個陳述句中完成
df.drop(df[( (df['year'].isin(anos)) & (df['month'] == 2) & (df['day'] == 29) )].index)
PS:您可以將資料框示例發布為 csv 嗎?
uj5u.com熱心網友回復:
這將在沒有回圈的情況下完成作業:
anos = [2013,2014,2015,2017,2018,2019,2021,2022]
df = df[(df['month'] != 2) | (df['day'] != 29) | ~df['year'].isin(anos)]
df
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/491716.html
下一篇:修改字典以洗掉專案
