python - 向有效数据框添加值并忽略无效解析
问题描述
在大量的数据框中(示例如下所示),我想在'timestamp'
列下的每个有效解析中添加一个指定的值。但是,时间戳数据帧包括数值和字符串。我想保留数据框中的原始字符串。
,Date,Time,Company,AV_ID,timestamp
0,29-Jan-2019,09:29:43.184,DEL,DEL0002,1548754413425000000
1,29-Jan-2019,09:29:43.184,in,msg:,should
2,29-Jan-2019,09:29:43.199,DEL,DEL0002,1548754413425000000
3,29-Jan-2019,09:29:43.199,in,msg:,should
4,29-Jan-2019,09:29:44.543,DEL,DEL0002,1548754415425000000
5,29-Jan-2019,09:29:44.543,in,msg:,should
6,29-Jan-2019,09:29:44.574,DEL,DEL0002,1548754415425000000
7,29-Jan-2019,09:29:44.574,in,msg:,should
8,29-Jan-2019,09:29:46.606,DEL,DEL0002,1548754417425000000
我目前正在使用以下代码。但是,我无法跳过带有字符串的数据帧的操作。如果我使用errors='coerce'
,我将丢失包含字符串的数据框。
local = 28800000
orig_data['timestamp'] = pd.to_numeric(orig_data['timestamp'], errors = 'ignore')
orig_data['timestamp'] = orig_data['timestamp'] + local
orig_data['timestamp'] = pd.to_datetime(orig_data['timestamp'], unit = 'ms')
解决方案
使用errors = 'coerce'
并最终用原始值替换缺失值:
local = 28800000
s = pd.to_numeric(orig_data['timestamp'], errors = 'coerce') + local
#change unit to ns
orig_data['timestamp'] = pd.to_datetime(s, unit = 'ns').fillna(orig_data['timestamp'])
print (orig_data)
Date Time Company AV_ID timestamp
0 29-Jan-2019 09:29:43.184 DEL DEL0002 2019-01-29 09:33:33.453799936
1 29-Jan-2019 09:29:43.184 in msg: should
2 29-Jan-2019 09:29:43.199 DEL DEL0002 2019-01-29 09:33:33.453799936
3 29-Jan-2019 09:29:43.199 in msg: should
4 29-Jan-2019 09:29:44.543 DEL DEL0002 2019-01-29 09:33:35.453799936
5 29-Jan-2019 09:29:44.543 in msg: should
6 29-Jan-2019 09:29:44.574 DEL DEL0002 2019-01-29 09:33:35.453799936
7 29-Jan-2019 09:29:44.574 in msg: should
8 29-Jan-2019 09:29:46.606 DEL DEL0002 2019-01-29 09:33:37.453799936
推荐阅读
- amazon-web-services - AWS S3 重写网址
- fft - 如何有效地使用 fftw_plan_many_dft?
- javascript - 如何在更改的 Google 工作表数据上最后加载并使用脚本以 PDF 格式发送电子邮件
- r - R错误:新列会在现有列之后留下孔
- html - Angular 获取 Json 对象并用 HTML 显示它
- android-studio - 从 android studio 连接到 localhost
- python - 如何将数据框转换为字典列表
- sql-server - 是否可以创建额外的 sp_user_counter
- asterisk - 星号:进入队列时向呼叫者播放消息
- python - Pytorch 数学计算(只能将一个元素张量转换为 Python 标量)