Python 熊猫:从数据框中选择列

Python 熊猫:从数据框中选择列,python,pandas,Python,Pandas,熊猫是这里的初学者。我希望返回完整列的数据,我已经看到了几种不同的方法 如果有,下面两个条目之间的区别是什么?看起来他们返回的是同样的东西 贷款数据[“国际利率”] loansData.int_rate它们是相同的,但对我来说,第一种方法处理列名中的空格和非法字符,因此是首选方法,例如: In [115]: df = pd.DataFrame(columns=['a', ' a', '1a']) df Out[115]: Empty DataFrame Columns: [a, a, 1a]

熊猫是这里的初学者。我希望返回完整列的数据,我已经看到了几种不同的方法

如果有,下面两个条目之间的区别是什么?看起来他们返回的是同样的东西

贷款数据[“国际利率”]


loansData.int_rate

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

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

上面显示的索引与列“index”相对,它们是相同的,但对我来说,第一种方法处理列名中的空格和非法字符,因此是首选方法,例如:

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

上面显示的是索引,而不是“index”列。

它们返回相同的结果。pandas中的列名类似于引用系列的字典键。列名本身是作为dataframe对象一部分的命名属性

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

要获得更完整的解释,我建议您阅读本文:


搜索“Access using dict notation”(使用dict表示法访问)以查找示例,其中显示这两个方法返回相同的值。

它们确实返回相同的值。pandas中的列名类似于引用系列的字典键。列名本身是作为dataframe对象一部分的命名属性

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

要获得更完整的解释,我建议您阅读本文:


搜索“Access using dict notation”(使用dict表示法访问)以查找示例,其中显示这两种方法返回相同的值。

后者基本上是前者的语法糖。这里(至少)有几个陷阱:

  • 如果列名不是有效的Python标识符(例如,如果列名是
    my column name?!
    ),则必须使用前者

  • 有些令人惊讶的是,您只能使用前一种形式完全正确地添加新列(例如,请参阅)

后一种说法的示例:

import pandas as pd

df = pd.DataFrame({'a': range(4)})
df.b = range(4)
>> df.columns
Index([u'a'], dtype='object')

但是,出于某种原因,
df.b
返回正确的结果。

后者基本上是前者的语法糖分。有(至少)几个问题:

  • 如果列名不是有效的Python标识符(例如,如果列名是
    my column name?!
    ),则必须使用前者

  • 有些令人惊讶的是,您只能使用前一种形式完全正确地添加新列(例如,请参阅)

后一种说法的示例:

import pandas as pd

df = pd.DataFrame({'a': range(4)})
df.b = range(4)
>> df.columns
Index([u'a'], dtype='object')

但是,出于某种原因,
df.b
返回正确的结果。

如果您正在处理任何ML项目,并且希望分别提取特征变量和目标变量,并且需要将它们分开。 下面的代码将很有用:这是通过索引作为列表选择功能,并将其应用到数据帧。在这段代码中,数据是DF

len_col=len(data.columns)
total_col=list(data.columns)
Target_col_Y=total_col[-1]
Feature_col_X=total_col[0:-1]
print('The dependent variable is')
print(Target_col_Y)
print('The independent variables are')
print(Feature_col_X)
其输出如下所示:
如果您正在处理任何ML项目,并且希望分别提取特征变量和目标变量,并且需要将它们分开。 下面的代码将很有用:这是通过索引作为列表选择功能,并将其应用到数据帧。在这段代码中,数据是DF

len_col=len(data.columns)
total_col=list(data.columns)
Target_col_Y=total_col[-1]
Feature_col_X=total_col[0:-1]
print('The dependent variable is')
print(Target_col_Y)
print('The independent variables are')
print(Feature_col_X)
其输出如下所示:
这篇文章也是一个很好的方法来建立关于熊猫是什么以及它是如何思考的上下文:)这篇文章也是一个很好的方法来建立关于熊猫是什么以及它是如何思考的上下文:)除非你能提供示例代码,否则你最后的陈述是不真实的。我认为你链接到的问题令人惊讶,但我从未尝试过,谢谢你的链接though@EdChum我记得有一个问题,它-见上文。我过去在这方面遇到过很多麻烦。是的,不清楚规则是什么,所以我现在总是避免你的最后一句话是不真实的,除非你能提供示例代码,否则我会这样做。我认为你链接到的问题令人惊讶,但我从未尝试过,谢谢你的链接though@EdChum我记得有一个问题,它-见上文。我过去在这方面遇到了很多麻烦。是的,不清楚规则是什么,所以我现在总是回避它