我正在嘗試檢查 pandas 數據框列中的最后一個單元格是否包含 1 或 2(這些是唯一的選項)。如果是 1,我想刪除整行,如果是 2,我想保留它。import pandas as pddf1 = pd.DataFrame({'number':[1,2,1,2,1], 'name': ['bill','mary','john','sarah','tom']})df2 = pd.DataFrame({'number':[1,2,1,2,1,2], 'name': ['bill','mary','john','sarah','tom','sam']})在上面的示例中,我想刪除 df1 的最后一行(所以最后一行是“sarah”),但是在 df2 中,我想保持原樣。到目前為止,我曾想過嘗試以下方法,但出現錯誤if df1['number'].tail(1) == 1: df = df.drop(-1)
4 回答

白衣非少年
TA貢獻1155條經驗 獲得超0個贊
DataFrame.drop
根據標簽(索引的實際值)刪除行。雖然可以做到df1.drop(df1.index[-1])
這一點,但重復索引是有問題的??梢杂?選擇最后一行iloc
,也可以用 選擇單個值.iat
if df1['number'].iat[-1] == 1: df1 = df1.iloc[:-1, :]

慕容708150
TA貢獻1831條經驗 獲得超4個贊
您可以檢查number最后一行的值是否等于一:
check = df1['number'].tail(1).values == 1
# Or check entire row with
# check = 1 in df1.tail(1).values
如果該條件成立,您可以選擇除最后一行之外的所有行并分配回df1:
if check:
df1 = df1.iloc[:-1, :]
添加回答
舉報
0/150
提交
取消