亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如果 dataframe.tail(1) 是 X,做點什么

如果 dataframe.tail(1) 是 X,做點什么

qq_花開花謝_0 2022-07-12 09:43:40
我正在嘗試檢查 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, :]


查看完整回答
反對 回復 2022-07-12
?
慕容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, :]


查看完整回答
反對 回復 2022-07-12
?
慕工程0101907

TA貢獻1887條經驗 獲得超5個贊

if df1.tail(1).number == 1:
    df1.drop(len(df1)-1, inplace = True)


查看完整回答
反對 回復 2022-07-12
?
慕少森

TA貢獻2019條經驗 獲得超9個贊

您可以使用相同的尾部功能

df.drop(df.tail(n).index,inplace=True) # drop last n rows


查看完整回答
反對 回復 2022-07-12
  • 4 回答
  • 0 關注
  • 102 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號