使用数据框的部分名称创建一个新列

时间:2018-09-29 23:41:37

标签: python pandas

我有五个数据集,其中添加了“年份”列,如下所示:

newyork2014['Year'] = 2014
newyork2015['Year'] = 2015
newyork2016['Year'] = 2016
newyork2017['Year'] = 2017
newyork2018['Year'] = 2018

但是,我想知道是否还有一种更Python化的方法,也许可以通过一个函数来实现?我不想将实际数据框更改为字符串,但是我想“字符串化”数据框的名称。这就是我的想法:

def get_year(df):
    df['Year'] = last four digits of name of df
    return df

1 个答案:

答案 0 :(得分:0)

在创建数据框时,您可能需要稍作调整,需要分配一个name

newyork2014.name='newyork2014'

def get_year(df):
    df['Year'] = df.name[-4:]
    return df
get_year(newyork2014)
Out[42]: 
           ID  Col1  Col2  New  Year
2018-06-01  A    10   100  0.5  2014
2018-06-02  B     5    25  2.1  2014
2018-06-03  A    25    25  0.6  2014