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()方法的。