Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python DataFrameA.columnA与熊猫中的DataFrameA。[“columnA”相同吗?_Python_Python 3.x_Pandas_Dataframe_Numpy - Fatal编程技术网

Python DataFrameA.columnA与熊猫中的DataFrameA。[“columnA”相同吗?

Python DataFrameA.columnA与熊猫中的DataFrameA。[“columnA”相同吗?,python,python-3.x,pandas,dataframe,numpy,Python,Python 3.x,Pandas,Dataframe,Numpy,我正在考虑将我所有的DataFrameA.columnA更改为DataFrameA[“columnA”],因为看起来文档经常使用括号语法。这看起来是更好的做法,因为它提供了基于变量而不是硬编码动态选择列的机会。例如,您可以执行以下操作: columnWanted="columnA"; DataFrameA[columnWanted] # Yield ColumnA, GOOD 使用其他语法 columnWanted="columnA"; DataFr

我正在考虑将我所有的
DataFrameA.columnA
更改为
DataFrameA[“columnA”]
,因为看起来文档经常使用括号语法。这看起来是更好的做法,因为它提供了基于变量而不是硬编码动态选择列的机会。例如,您可以执行以下操作:

columnWanted="columnA"; 
DataFrameA[columnWanted] # Yield ColumnA, GOOD
使用其他语法

columnWanted="columnA"; 
DataFrameA.columnWanted # Yields Nothing, BAD. No way of Evaluating Variable.
这是行不通的。因为它查找“
columnWanted
”,并且无法在python中放入某种类型的语句来计算columnWanted的值


您可以同时使用上述两种约定,只要:

  • 有问题的专栏存在
  • 列名是字符串文字,而不是包含字符串的变量
但是,属性表示法的使用还有另一个限制, 即列名必须是有效标识符(例如,它可以 不包含任何空格)

但是如果您创建一个新的列,那么唯一的选择就是括号 符号

在我看来,属性表示法使用得非常频繁,而且 无需更改括号符号,只需使用 只有一个符号

还要注意,df.xxx比df['xxx']更简洁,所以我更喜欢它
更确切地说是属性表示法。

首先,它应该是
DataFrameA[“columnA”]
,而不是
DataFrameA[“columnA”]

此外,这里:

columnWanted="columnA"; 
DataFrameA.columnWanted # Yields Nothing, BAD. No way of Evaluating Variable.
“无法计算变量”并不完全正确。你可以用

columnWanted="columnA"; 
getattr(DataFrameA, columnWanted) # equivalent to DataFrameA.columnA
但是你不应该在这里用这个。最好使用
DataFrameA[“columnA”]

关于这个问题,两者完全相同。你可以通过跑步看到这一点

DataFrameA.columnA is DataFrameA["columnA"]

输出是
True

我不认为在
DataFrameA
[“columnName”]
@JohnGordon之间应该有一个时间段。你是对的,我不知道getattr。看来这会派上很多用场