我的数据文件如下所示:
data.txt
user,activity,timestamp,x-axis,y-axis,z-axis
0,33,Jogging,49105962326000,-0.6946376999999999,12.680544,0.50395286;
1,33,Jogging,49106062271000,5.012288,11.264028,0.95342433;
2,33,Jogging,49106112167000,4.903325,10.882658000000001,-0.08172209;
3,33,Jogging,49106222305000,-0.61291564,18.496431,3.0237172;
Run Code Online (Sandbox Code Playgroud)
可以看出,最后一列以分号结尾,所以当我读入熊猫时,该列被推断为类型对象(以分号结尾。
df = pd.read_csv('data.txt')
df
user activity timestamp x-axis y-axis z-axis
0 33 Jogging 49105962326000 -0.694638 12.680544 0.50395286;
1 33 Jogging 49106062271000 5.012288 11.264028 0.95342433;
2 33 Jogging 49106112167000 4.903325 10.882658 -0.08172209;
3 33 Jogging 49106222305000 -0.612916 18.496431 3.0237172;
Run Code Online (Sandbox Code Playgroud)
我如何让熊猫忽略那个分号?
我正在努力将我的数据帧转换成一组固定大小的片段,我应该将这些片段提供给卷积神经网络。具体来说,我想将每个包含段 sizeddf的m数组列表转换为(1,5,4)。所以最后,我会有一个(m,1,5,4)数组。
为了澄清我的问题,我使用 this 进行解释MWE。假设这是我的df:
df = {
'id': [1,1,1,1,1,1,1,1,1,1,1,1],
'speed': [17.63,17.63,0.17,1.41,0.61,0.32,0.18,0.43,0.30,0.46,0.75,0.37],
'acc': [0.00,-0.09,1.24,-0.80,-0.29,-0.14,0.25,-0.13,0.16,0.29,-0.38,0.27],
'jerk': [0.00,0.01,-2.04,0.51,0.15,0.39,-0.38,0.29,0.13,-0.67,0.65,0.52],
'bearing': [29.03,56.12,18.49,11.85,36.75,27.52,81.08,51.06,19.85,10.76,14.51,24.27],
'label' : [3,3,3,3,3,3,3,3,3,3,3,3] }
df = pd.DataFrame.from_dict(df)
Run Code Online (Sandbox Code Playgroud)
为此,我使用此功能:
def df_transformer(dataframe, chunk_size=5):
grouped = dataframe.groupby('id')
# initialize accumulators
X, y = np.zeros([0, 1, chunk_size, 4]), np.zeros([0,])
# loop over segments (id)
for _, group in grouped:
inputs = group.loc[:, 'speed':'bearing'].values
label = group.loc[:, 'label'].values[0]
# calculate number of splits
N = …Run Code Online (Sandbox Code Playgroud) python multidimensional-array python-3.x pandas numpy-ndarray