Python next(df.dropna().tail(1).iterrows()) 为啥不报错

inp = [{'c1':10, 'c2':100}, {'c1':11, 'c2':110}, {'c1':12, 'c2':123}]
df = pd.DataFrame(inp)
print(df,"\n")

test_row = next(df.dropna().tail(1).iterrows())
print(test_row,"\n")

输出:

c1 c2
0 10 100
1 11 110
2 12 123

(2, c1 12
c2 123
Name: 2, dtype: int64)

<class ‘pandas.core.frame.DataFrame’>

在这里,探究一个点,为啥上述代码没有报错。

因为对 df 除去含空值的行后的 dataframe: df.fropna().tail(1)用 iterrows方法,应该已经是最后一行了。再用 next 应该读到空数据报错才对,但是没有。因为 dataframe: df.fropna().tail(1) 得到一个临时的dataframe,得到 dataframe 首行的数据是要用一次 next()方法的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

培之

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值