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

标签 python pandas

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

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

但是,我想知道是否有一种更Pythonic的方式来做到这一点,也许是用一个函数?我不想将实际的数据帧更改为字符串,但我想“字符串化”数据帧的名称。这就是我的想法:

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

最佳答案

创建数据框时您可能需要进行一些调整,需要指定一个名称

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

关于python - 使用数据框中的部分名称创建一个新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52573418/

相关文章:

python - ZODB/repoze.catalog - 将对象和目录保存在同一数据库中?

python - 为什么带有 pd.isnull 的 pd.DataFrame 失败?

python - 使用 Pandas 从 URL 读取 excel 文件 - XLRDError

python - Pandas periodIndex bool 切片返回整个索引

python - 更新 Continuum Anaconda 后,"conda"命令返回 "failed to start process"

python - os.path.isfile() 为 linux smb 网络驱动器上的文件返回 false

python - Pandas:如果组中的最后一个值满足所需条件,则从数据框中删除组

python - 读取 CSV 文件并跳过行,直到我们使用 python 找到某些列

python - 如何使用 .shift() 根据条件过滤数据框

python - 具有看门狗支持的 Python 中的 Systemd 守护进程