假设我有一个空的熊猫数据框。
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]
通常,无论何时要按行和按列访问,都应在整个数据帧上使用单个
ix
,iloc
或loc
命令-而不是按顺序访问列,然后再按此处进行行访问。例如,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/