【发布时间】:2017-03-17 17:23:01
【问题描述】:
我有一个 Pandas DataFrame,其中有一列以小时和分钟为单位的时间字符串(例如 1 小时 8 分钟)。有些单元格只有几分钟(例如 47 分钟)。 我正在尝试从这种格式转换为总分钟数的整数值(例如 1 小时 8 分钟将是 68)。
我尝试对其进行硬编码,但由于我对 Python 比较陌生,因此遇到了麻烦。 有没有图书馆可以帮助我解决这个问题?
In [10]: df_times = pd.DataFrame(times)
df_times.columns = ["times"]
df_times
Out[10]: times
0 31 mins
1 1 hour 28 mins
2 1 hour 1 min
3 1 min
... ...
22849 ERROR
22850 7 mins
In [11]: (pd.to_timedelta(df_times["times"].str.replace('mins','min')).dt.total_seconds()//60).astype(int)
ValueError: unit abbreviation w/o a number
当我使用 errors="coerce" 时:
In [12]: (pd.to_timedelta(df_times["times"].str.replace('mins','min'), errors="coerce").dt.total_seconds()//60).astype(int)
ValueError: Cannot convert NA to integer
【问题讨论】:
标签: python parsing pandas time dataframe