给DataFrame添加列 错误:'2019-12-07 21:19:17'

2024-09-29 19:31:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据帧df,看起来像:

    Name
0   John
1  Sarah 
2  Harry 
3    Bob
4     Jo
5  Steve
6    Leo 
7  Nigel

我试图添加一个名为Last_Paid的列,其中新列中的所有行都包含上次修改付款文件的日期

所需的输出如下所示:

    Name            Last_Paid
0   John  2019-12-07 21:19:17
1  Sarah  2019-12-07 21:19:17
2  Harry  2019-12-07 21:19:17
3    Bob  2019-12-07 21:19:17
4     Jo  2019-12-07 21:19:17
5  Steve  2019-12-07 21:19:17
6    Leo  2019-12-07 21:19:17
7  Nigel  2019-12-07 21:19:17

我用来添加带有日期的列的代码如下:

 modTimesinceEpoc = os.path.getmtime(PayFilepath)
 LastmodificationTimePayfile = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(modTimesinceEpoc))
 df['Last_Paid'] = df[LastmodificationTimePayfile]

但是我得到了一个key error

KeyError: '2019-12-07 21:19:17'

'2019-12-07 21:19:17'LastmodificationTimePayfile变量的值

如果有人能让我知道如何添加新的价值列,它将不胜感激

请参阅下面的完整错误消息:

  File "<ipython-input-13-48aa2b889a2a>", line 1, in <module>
    runfile('C:/Database/Standardised Joined Q1 and Pay/2016_Q1/join.py', wdir='C:/Database/Standardised Joined Q1 and Pay/2016_Q1')

  File "C:\Anaconda_Python 3.7\2019.03\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 786, in runfile
    execfile(filename, namespace)

  File "C:\Anaconda_Python 3.7\2019.03\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 110, in execfile
    exec(compile(f.read(), filename, 'exec'), namespace)

  File "C:/Database/Standardised Joined Q1 and Pay/2016_Q1/join.py", line 198, in <module>
    main()

  File "C:/Database/Standardised Joined Q1 and Pay/2016_Q1/join.py", line 85, in main
    result['PAY_LAST_MODIFIED'] = result[LastmodificationTimePayfile]

  File "C:\Anaconda_Python 3.7\2019.03\lib\site-packages\pandas\core\frame.py", line 2927, in __getitem__
    indexer = self.columns.get_loc(key)

  File "C:\Anaconda_Python 3.7\2019.03\lib\site-packages\pandas\core\indexes\base.py", line 2659, in get_loc
    return self._engine.get_loc(self._maybe_cast_indexer(key))

  File "pandas/_libs/index.pyx", line 108, in pandas._libs.index.IndexEngine.get_loc

  File "pandas/_libs/index.pyx", line 127, in pandas._libs.index.IndexEngine.get_loc

  File "pandas/_libs/index.pyx", line 153, in pandas._libs.index.IndexEngine._get_loc_duplicates

  File "pandas/_libs/index.pyx", line 170, in pandas._libs.index.IndexEngine._maybe_get_bool_indexer

KeyError: '2019-12-07 21:19:17'

Tags: andinpypandasgetindexlinedatabase
1条回答
网友
1楼 · 发布于 2024-09-29 19:31:24

LastmodificationTimePayfile的值不是数据帧的一列-因此出现了keyerror

如果要将新列的值设置为LastmodificationTimePayfile,则应该编写

df['Last_Paid'] = LastmodificationTimePayfile

相关问题 更多 >

    热门问题