Pandas:从数据帧中选择列

2024-10-02 22:35:54 发布

您现在位置:Python中文网/ 问答频道 /正文

熊猫初学者。我希望返回一个完整列的数据,我看到了一些不同的方法。在

下面两个条目之间的区别是什么,如果有的话?看起来他们的回报是一样的。在

贷款数据['利息']

在贷款数据利息率在


Tags: 数据方法条目初学者区别贷款利息利息率
3条回答

他们的回报是一样的。pandas中的列名类似于引用一个系列的字典键。列名本身是dataframe对象的一部分的命名属性。在

首选第一种方法,因为它允许空格和其他非法运算符。在

如需更完整的解释,我建议您阅读本文: http://byumcl.bitbucket.org/bootcamp2013/labs/pd_types.html#pandas-types

搜索'accessusingdict notation'以找到它们显示这两个方法返回相同值的示例。在

后者基本上是前者的句法糖。至少有几个问题:

  • 如果列名不是有效的Python标识符(例如,如果列名是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返回正确的结果。在

它们是相同的,但对我来说,第一个方法处理列名和非法字符中的空格,因此是首选方法,例如:

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将不会达到预期的效果。在

示例:

^{pr2}$

上面显示的是与“index”列相反的索引

相关问题 更多 >