【发布时间】:2018-02-27 02:13:55
【问题描述】:
我有一个大约 50 列的数据集/pandas df - 列是字符、数字和日期的混合。其中 5 列是日期,标记为 Meeting1-Meeting5,我正在尝试计算会议日期之间的天数。
我的 df 大致是这样的:
ID_number Meeting1 Meeting2 Meeting3 Meeting4 Meeting5 Comments …
123456789 2014-09-17 2015-04-22 2015-05-30 NaN NaN text text …
987654321 2015-09-22 NaN 2016-02-20 NaN NaN text text …
456789123 2016-10-22 2017-05-29 NaN NaN NaN text text …
在 SQL 中,我通常会使用 SELECT DATEDIFF(dd,Meeting1,Meeting2) AS diff_mt1_mt2
在 Python 中,我尝试过使用
from datetime import datetime
from datetime import date
df['diff_mt1_mt2'] = (df['Meeting2']-df['Meeting1'])
但是得到一个 ValueError: 值的长度与索引的长度不匹配(下面的完整错误)
在 Python 中是否有更简单/更好的方法来做到这一点?
完全错误:
ValueError Traceback (most recent call last)
<ipython-input-9-055085bc04d7> in <module>()
3 from datetime import date
4
----> 5 df['diff_mt1_mt2'] = (df['Meeting2']-df['Meeting1']),
C:\Users\lmgagne\AppData\Local\Continuum\Anaconda3\lib\site-packages\pandas\core\frame.py in __setitem__(self, key, value)
2427 else:
2428 # set column
-> 2429 self._set_item(key, value)
2430
2431 def _setitem_slice(self, key, value):
C:\Users\lmgagne\AppData\Local\Continuum\Anaconda3\lib\site-packages\pandas\core\frame.py in _set_item(self, key, value)
2493
2494 self._ensure_valid_index(value)
-> 2495 value = self._sanitize_column(key, value)
2496 NDFrame._set_item(self, key, value)
2497
C:\Users\lmgagne\AppData\Local\Continuum\Anaconda3\lib\site-packages\pandas\core\frame.py in _sanitize_column(self, key, value, broadcast)
2664
2665 # turn me into an ndarray
-> 2666 value = _sanitize_index(value, self.index, copy=False)
2667 if not isinstance(value, (np.ndarray, Index)):
2668 if isinstance(value, list) and len(value) > 0:
C:\Users\lmgagne\AppData\Local\Continuum\Anaconda3\lib\site-packages\pandas\core\series.py in _sanitize_index(data, index, copy)
2877
2878 if len(data) != len(index):
-> 2879 raise ValueError('Length of values does not match length of ' 'index')
2880
2881 if isinstance(data, PeriodIndex):
ValueError: Length of values does not match length of index
我正在使用:
Python 3.6.1 版和 Pandas 0.20.1 版
【问题讨论】:
-
可以添加数据样本吗?因为它应该可以工作。
-
@jezrael 添加了一些数据
标签: python python-3.x pandas