2024-10-02 22:35:54 发布
网友
熊猫初学者。我希望返回一个完整列的数据,我看到了一些不同的方法。在
下面两个条目之间的区别是什么,如果有的话?看起来他们的回报是一样的。在
贷款数据['利息']
在贷款数据利息率在
他们的回报是一样的。pandas中的列名类似于引用一个系列的字典键。列名本身是dataframe对象的一部分的命名属性。在
首选第一种方法,因为它允许空格和其他非法运算符。在
如需更完整的解释,我建议您阅读本文: http://byumcl.bitbucket.org/bootcamp2013/labs/pd_types.html#pandas-types
搜索'accessusingdict notation'以找到它们显示这两个方法返回相同值的示例。在
后者基本上是前者的句法糖。至少有几个问题:
如果列名不是有效的Python标识符(例如,如果列名是my column name?!),则必须使用前者。
my column name?!
有点令人惊讶的是,您只能使用前一个表单来完全正确地添加一个新的列(参见,例如here)。
后一个语句的示例:
import pandas as pd df = pd.DataFrame({'a': range(4)}) df.b = range(4) >> df.columns Index([u'a'], dtype='object')
但是由于某些原因,df.b返回正确的结果。在
df.b
它们是相同的,但对我来说,第一个方法处理列名和非法字符中的空格,因此是首选方法,例如:
In [115]: df = pd.DataFrame(columns=['a', ' a', '1a']) df Out[115]: Empty DataFrame Columns: [a, a, 1a] Index: [] In [116]: print(df.a) # works print([' a']) # works print(df.1a) # error File "<ipython-input-116-4fa4129a400e>", line 3 print(df.1a) ^ SyntaxError: invalid syntax
实际上,当您使用dot.时,它是在试图寻找一个键作为属性,如果由于某种原因您使用了与属性匹配的列名,那么使用dot将不会达到预期的效果。在
.
示例:
上面显示的是与“index”列相反的索引
他们的回报是一样的。pandas中的列名类似于引用一个系列的字典键。列名本身是dataframe对象的一部分的命名属性。在
首选第一种方法,因为它允许空格和其他非法运算符。在
如需更完整的解释,我建议您阅读本文: http://byumcl.bitbucket.org/bootcamp2013/labs/pd_types.html#pandas-types
搜索'accessusingdict notation'以找到它们显示这两个方法返回相同值的示例。在
后者基本上是前者的句法糖。至少有几个问题:
如果列名不是有效的Python标识符(例如,如果列名是
my column name?!
),则必须使用前者。有点令人惊讶的是,您只能使用前一个表单来完全正确地添加一个新的列(参见,例如here)。
后一个语句的示例:
但是由于某些原因,
df.b
返回正确的结果。在它们是相同的,但对我来说,第一个方法处理列名和非法字符中的空格,因此是首选方法,例如:
实际上,当您使用dot
.
时,它是在试图寻找一个键作为属性,如果由于某种原因您使用了与属性匹配的列名,那么使用dot将不会达到预期的效果。在示例:
^{pr2}$上面显示的是与“index”列相反的索引
相关问题 更多 >
编程相关推荐