Python pandas-用于获取列及其名称的函数

Python pandas-用于获取列及其名称的函数,python,pandas,Python,Pandas,我有一个Excel文件: Test_Case Value Case_1 0.988532846 Case_2 0.829241525 Case_3 0.257209267 Case_4 0.871698313 Case_5 0.63913665 有了熊猫,我看到我们可以得到这样一个专栏: import pandas as pd myExcelFile = "data.xlsx" readExcelFile = pd.read_excel(m

我有一个Excel文件:

Test_Case   Value
Case_1      0.988532846
Case_2      0.829241525
Case_3      0.257209267
Case_4      0.871698313
Case_5      0.63913665
有了熊猫,我看到我们可以得到这样一个专栏:

import pandas as pd
myExcelFile = "data.xlsx"
readExcelFile = pd.read_excel(myExcelFile, sheet_name=0, index=0)
testCaseColumn = readExceFile.Test_Case
结果:

0 Case_1
1 Case_2
2 Case_3
3 Case_4
4 Case_5
列的名称可以更改,我想创建一个带有两个参数的函数来获取我想要的列:

def getColumn(readExceFile, columnName):
    return readExceFile.columnName
我想知道如何将列的名称赋予readExcelFile参数


感谢您的帮助

您可以使用
getattr

def getColumn(readExceFile, columnName):
    return getattr(readExceFile, columnName)

您可以使用
getattr

def getColumn(readExceFile, columnName):
    return getattr(readExceFile, columnName)

由于
your_dataframe.loc[:,'column_name']
仅适用于不带空格字符的列名,并且您已经提到列名可以更改,因此您可以使用
your_dataframe.loc[:,'column_name']
调用列名(请参见Alexander Céciles评论)

另一方面,如果您的数据集始终具有相同的结构(n列,第一列包含一些分类数据,第二列包含值,等等),那么您也可以使用
your_dataframe.iloc[:,0]
,直接调用它,其中0是您在集合中感兴趣的第一列

最后,如果您真的需要一个单独的函数(除了我提到的那两个函数之外),它返回完全相同的输出,那么您可以使用:

def get_column(your_dataframe, column_name):
    return your_dataframe.loc[:,column_name]

。。。什么是高度非Python的代码编写方式(请参见)

,因为
您的_数据框架。column_name
仅适用于不带空格字符的列名,并且您提到列名可以更改,您可以使用
您的_数据框架.loc[:,'column_name']
(请参见Alexander Céciles评论)

另一方面,如果您的数据集始终具有相同的结构(n列,第一列包含一些分类数据,第二列包含值,等等),那么您也可以使用
your_dataframe.iloc[:,0]
,直接调用它,其中0是您在集合中感兴趣的第一列

最后,如果您真的需要一个单独的函数(除了我提到的那两个函数之外),它返回完全相同的输出,那么您可以使用:

def get_column(your_dataframe, column_name):
    return your_dataframe.loc[:,column_name]

。。。编写代码的高度非Python方式是什么(请参见)

您是否需要read\u excel中的
usecols
参数?选中此项:通常最好使用
['label']
而不是
.label
访问列。你能澄清一下你想做什么吗?另外,变量名和函数名应该跟在带有下划线的小写字母后面。@AMC我必须检查代码并重写它。在代码中,这些行被写了好几次。我想创建一个代码清晰的函数。是否需要read\u excel中的
usecols
参数?选中此项:通常最好使用
['label']
而不是
.label
访问列。你能澄清一下你想做什么吗?另外,变量名和函数名应该跟在带有下划线的小写字母后面。@AMC我必须检查代码并重写它。在代码中,这些行被写了好几次。我想创建一个代码清晰的函数。带空格的列名可能会出现问题,
您的_dataframe.iloc[:,0]
可以解决此问题。感谢您的帮助。列名中有空格可能会有问题,
您的_dataframe.iloc[:,0]
可以解决此问题。谢谢你的帮助。