定义函数以按名称选择列,Dataframe Python

时间:2016-10-31 13:30:46

标签: python function pandas dataframe

我有一个包含1000个模拟的数据框,我想定义一个允许我按名称选择一列的函数

数据框如下所示:

SIMULATION     Sim_1     Sim_2     Sim_3     Sim_4     Sim_5     Sim_6     
2016        0.013765  0.012882  0.006664  0.019607  0.010095  0.020073   
2017        0.016176  0.014744  0.009644  0.022152  0.013778  0.018454   
2018        0.018562  0.016773  0.014824  0.020529  0.018414  0.012878   
2019        0.027624  0.009368  0.016195  0.022941  0.025510  0.002396   
2020        0.037297 -0.000171  0.019798  0.021232  0.028369  0.001007   
2021        0.040634 -0.002396  0.024508  0.018794  0.027421  0.007584

要选择一列,可以输入

df.Sim_1

这会给我第一列

是否有可能定义一个函数?我试过了

def select(data, sim_nr):
    sim = data.sim_nr()
    return(sim)

但是将此函数应用于数据集会给我一个错误

select(f("I:/tools/python/ESG/yield_RN_FY15_mitVA_BC.FAC",20), "Sim_1")

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

您需要[]来选择列:

def select(data, sim_nr):
    sim = data[sim_nr]
    return(sim)

答案 1 :(得分:1)

使用方括号选择,您甚至不需要功能:

df['Sim_1']