gpt4 book ai didi

python - 在忽略(或保留)NaN 的同时更改列格式

转载 作者:行者123 更新时间:2023-12-04 08:52:09 25 4
gpt4 key购买 nike

我想从包含此格式值的 DataFrame 中更改一列 hh:mm:ss到包含分钟数的列(同时保留 NaN 值)
我无法直接从 excel 文件中更改它,因此我尝试使用 Pandas 进行更改(我正在研究带有健康数据库的 ML 模型):

38      00:35:00
39 00:50:00
40 00:45:00
41 01:32:00
42 00:29:00
43 NaN
44 00:45:00
45 00:13:00
46 00:20:00
47 00:31:00
48 00:54:00
49 00:43:00
50 02:33:00
我尝试使用掩码将值与 NaN 值分开,然后使用 str.split() 转换为分钟
df1 = df['delay'][df['delay'].notnull()].astype(str).str.split(':').apply(lambda x: int(x[0]) * 60 + int(x[1]))```
df2 = df['delai_ponc_recal_calc'][df['delai_ponc_recal_calc'].isnull()]
但是随后我无法在不失去顺序的情况下合并到两个系列(我在合并系列的末尾获得了具有正确索引的 NaN 值)
39        50
40 45
41 92
42 29
44 45
45 13
46 20
47 31
48 54
49 43
50 153
43 NaN
我也尝试从 hh:mm:ss 开始到分钟用 datatime.timetimedelta使用循环(不使用掩码),但我仍然无法在几分钟内拥有包含所有值的列(系列或 DF),同时保持 NaN ...

最佳答案

您可以使用 pd.to_timedelta 转换 delay列到 Pandas timedelta 系列然后将其除以 Timedelta1 min获得总分钟数:

pd.to_timedelta(df['delay'], errors='coerce') / pd.Timedelta(1, 'min')
39     50.0
40 45.0
41 92.0
42 29.0
43 NaN
44 45.0
45 13.0
46 20.0
47 31.0
48 54.0
49 43.0
50 153.0
Name: delay, dtype: float64

关于python - 在忽略(或保留)NaN 的同时更改列格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64050271/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com