这两个Python数据帧命令之间的区别是什么?
假设我有一个空的数据帧这两个Python数据帧命令之间的区别是什么?,python,pandas,Python,Pandas,假设我有一个空的数据帧 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的链
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的链接): 您通常应该在需要行和列访问的任何时候对整个数据帧使用单个
ix
、iloc
或loc
命令,而不是顺序列访问,然后再进行行访问,就像您在这里所做的那样。比如说,
m.iloc[1,2]
请注意,与您的示例相比,1和2是相反的,因为ix/iloc/loc
都使用标准的行-列语法。您的语法是相反的,因为您正在链接,并且首先从数据帧(这是一个系列)中选择一列,然后从该系列中选择一行
在像您这样的简单情况下,这通常不会太重要,但是ix/iloc/loc
的用处在于,它们的设计允许您以复杂的方式“编辑”数据帧(也称为设置或赋值)
这里有一个很好的解释ix/iloc/loc
:
以及标准文件:
相关:除上述内容外,您还应了解第一行可能出现故障而第二行正常工作的原因:
m.iloc[1,2]