Python和pandas:df[“colName”与df.loc[:,“colName”完全等效吗?
我已经测试了很多场景,在每一个场景中,Python和pandas:df[“colName”与df.loc[:,“colName”完全等效吗?,python,pandas,Python,Pandas,我已经测试了很多场景,在每一个场景中,df['colName']都输出了与df.loc[:,'colName']相同的东西 我只是想确定它们确实是完全相等的。是的,它们做同样的事情。 df['colName']将返回方括号中指定的列,和df.loc['rowName']将返回方括号中指定的行。 df.loc['row1Name':'row2Name','colName']将返回列的所有元素 在括号中指定,从指定的第一行到指定的最后一行 df.loc[:,'colName']基本上是告诉pytho
df['colName']
都输出了与df.loc[:,'colName']
相同的东西
我只是想确定它们确实是完全相等的。是的,它们做同样的事情。
df['colName']
将返回方括号中指定的列,和
df.loc['rowName']
将返回方括号中指定的行。df.loc['row1Name':'row2Name','colName']
将返回列的所有元素
在括号中指定,从指定的第一行到指定的最后一行
df.loc[:,'colName']
基本上是告诉python返回指定列中的所有元素
从所有行中,它返回整个列
请注意,解析过程可能有所不同,一种方法可能比另一种更有效。是的,它们做的事情相同。
df['colName']
将返回方括号中指定的列,和
df.loc['rowName']
将返回方括号中指定的行。df.loc['row1Name':'row2Name','colName']
将返回列的所有元素
在括号中指定,从指定的第一行到指定的最后一行
df.loc[:,'colName']
基本上是告诉python返回指定列中的所有元素
从所有行中,它返回整个列
请注意,解析过程可能不同,一种方法可能比另一种更有效。它们在提供输出方面是相同的,但在性能上有所不同。尝试以下示例并观察
将熊猫作为pd导入
导入时间信息
df=pd.DataFrame({“colName”:range(1000000)},index=range(1000000))
打印(“with.loc:”,timeit.timeit('df.loc[:,“colName”]”,globals=globals())
打印(“不带.loc:”,timeit.timeit('df[“colName”]”,globals=globals())
它们在提供输出方面是相同的,但在性能上有所不同。尝试以下示例并观察
将熊猫作为pd导入
导入时间信息
df=pd.DataFrame({“colName”:range(1000000)},index=range(1000000))
打印(“with.loc:”,timeit.timeit('df.loc[:,“colName”]”,globals=globals())
打印(“不带.loc:”,timeit.timeit('df[“colName”]”,globals=globals())
是的,它们是相等的。您想知道它们在语义上是否相同吗?或者熊猫体内执行的相同路径具有相似的副作用?是的,它们是相等的。你想知道它们在语义上是否相同吗?或者在Pandas中执行相同的路径,具有类似的副作用?语义相同,正确,但它们在Pandas中是否遵循相同的代码路径?有同样的副作用吗?我怀疑,df.loc[:,'colName']
会有一个稍微不同的代码路径,内存消耗更多相同的语义,是真的,但是它们在熊猫中沿着相同的代码路径走吗?有同样的副作用吗?我怀疑,df.loc[:,'colName']
的代码路径会有点不同,内存消耗会更多