假设我有一个空的熊猫数据框。

import pandas as pd
m = pd.DataFrame(index=range(1,100), columns=range(1,100))
m = m.fillna(0)


以下两个命令有什么区别?

m[2][1]
m[2].ix[1] # This code actually allows you to edit the dataframe


如果有帮助将来参考,请随时提供进一步的阅读。

最佳答案

简短的答案是您可能不应该执行其中任何一个(原因请参见@EdChum的链接):

m[2][1]
m[2].ix[1]


通常,无论何时要按行和按列访问,都应在整个数据帧上使用单个ixilocloc命令-而不是按顺序访问列,然后再按此处进行行访问。例如,

m.iloc[1,2]


请注意,与您的示例相比,1和2是相反的,因为ix/iloc/loc都使用row then column的标准语法。语法相反,因为要进行链接,因此首先要从数据框(一个序列)中选择一列,然后从该序列中选择一行。

在像您这样的简单情况下,通常并没有太大关系,但是ix/iloc/loc的用处在于它们旨在让您以复杂的方式(即设置或分配值)“编辑”数据框。

ix/iloc/loc的解释很好:

pandas iloc vs ix vs loc explanation?

以及标准的熊猫文件中:

http://pandas.pydata.org/pandas-docs/stable/indexing.html

关于python - 这两个Python pandas dataframe命令之间有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36347869/

10-12 17:01