我正在研究Python Pandas Data Frame,我看到了
%timeit
然后我比较一些Dataframe, 下面是访问数据集变得非常相关的数据帧的不同方式的性能示例。
所以
%timeit data.ix[0,0]
10000个循环,最佳3:每循环159μs
%timeit data.loc[0,'nation']
10000次循环,最佳3次:每次循环158μs
%timeit data.iloc[0,0]
10000次循环,最佳为3:每循环132μs
%timeit data.iat[0,0]
100000个循环,最佳3:每循环5.9μs
你可以看到data.iat[0,0]
与其他人截然不同。
我的问题是为什么.iat
与其他人不同,以及如何运作?
我们可以使用任何数据吗?
答案 0 :(得分:2)
首先,不要使用ix
...它的用例比iloc
/ loc
或iat
/ {{更令人困惑1}}。 And ix
will be deprecated
其次,at
更快,但并不打算成为公共API,但没有什么能阻止您使用它。 See @jeff's comment
现在回答的问题:
get_value
和iloc
接受类似数组的输入... loc
和iat
则不接受。因此,如果您要访问数据框中的单个点,请务必使用at
和iat
。但是,如果您要使用布尔数组或位置或索引值数组,则不能使用at
或iat
,因此请使用at
和iloc