Python .apply(lambda…,strftime生成无
我正在尝试更改从传感器接收的日期和时间值的格式。我最初将其作为字符串接收,并将其转换为datetime,然后尝试应用strftime。当我在Jupyter笔记本中对值集执行此操作时,它工作正常,但当我在代码中实现它时,它会中断。以下是我的代码:Python .apply(lambda…,strftime生成无,python,pandas,strftime,Python,Pandas,Strftime,我正在尝试更改从传感器接收的日期和时间值的格式。我最初将其作为字符串接收,并将其转换为datetime,然后尝试应用strftime。当我在Jupyter笔记本中对值集执行此操作时,它工作正常,但当我在代码中实现它时,它会中断。以下是我的代码: import json import socket from pandas.io.json import json_normalize from sqlalchemy import create_engine import pandas as pd im
import json
import socket
from pandas.io.json import json_normalize
from sqlalchemy import create_engine
import pandas as pd
import datetime
# Establish connection with Database
engine = create_engine('sqlite:///Production.db', echo=False)
# Establish connecton with Spider
server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
server_socket.bind(('192.168.130.35', 8089))
# Receive data while sensor is live
while True:
message, address = server_socket.recvfrom(1024)
# Create empty list to hold data of interest
objs_json = []
# Record only data where tracked_objects exist within json stream
if b'tracked_objects' in message:
stream = json.loads(message)
if not stream:
break
# Append all data into list and process through parser
objs_json += stream
print("Recording Tracked Object")
# Parsing json file with json_normalize object
objs_df = json_normalize(objs_json, record_path='tracked_objects',
meta=[['metadata', 'serial_number'], 'timestamp'])
# Renaming columns
objs_df = objs_df.rename(
columns={"id": "object_id", "position.x": "x_pos", "position.y": "y_pos",
"person_data.height": "height",
"metadata.serial_number": "serial_number", "timestamp": "timestamp"})
# Selecting columns of interest
objs_df = objs_df.loc[:, ["timestamp", "serial_number", "object_id", "x_pos", "y_pos", "height"]]
# Converting datatime into requested format
objs_df["timestamp"] = pd.to_datetime(objs_df["timestamp"])
objs_df["timestamp"].apply(lambda x: x.strftime("%d-%m-%Y %Hh:%Mm:%Ss.%f")[:-3])
# Writting the data into SQlite db
objs_df.to_sql('data_object', con=engine, if_exists='append', index=False)
# In case there is no tracks, print No Tracks in console.
else:
print("No Object Tracked")
# Empty the list and prepare it for next capture
objs_json = []
以下是我收到的错误消息:
线程1中的异常:
回溯(最近一次呼叫最后一次):
文件“C:\Program Files(x86)\Python37-32\lib\threading.py”,第926行,在\u bootstrap\u inner中
self.run()
文件“C:\Users\slavi\PycharmProjects\ProRail\u FInal\u POC\pythreads\runner.py”,第15行,正在运行
self.function(*self.args,**self.kwargs)
ObjectStream中第46行的文件“C:\Users\slavi\PycharmProjects\ProRail\u FInal\u POC\ObjectStream.py”
objs_df[“timestamp”]。应用(lambda x:x.strftime(“%d-%m-%Y%Hh:%Mm:%Ss.%f”)[:-3])
文件“C:\Users\slavi\PycharmProjects\ProRail\u FInal\u POC\venv\lib\site packages\pandas\core\series.py”,第4049行,应用
返回self.\u构造函数(已映射,索引=self.index)。\uuuu完成\uuuu(self)
文件“C:\Users\slavi\PycharmProjects\ProRail\u FInal\u POC\venv\lib\site packages\pandas\core\series.py”,第299行,在初始化中__
“索引意味着{ind}”。格式(val=len(数据),ind=len(索引))
ValueError:传递值的长度为0,索引表示1
你知道如何解决这个错误吗?你能分享一下
消息是什么吗?pnv-我已经做了。就在代码下面。你是指其他消息吗?