Python 添加二维张量作为数据帧的列

Python 添加二维张量作为数据帧的列,python,pandas,dataframe,pytorch,tensor,Python,Pandas,Dataframe,Pytorch,Tensor,我的数据框看起来像 INCIDENT_NUMBER 0 INC000030884498 1 INC000029956111 2 INC000029555353 3 INC000029555338 对于上述四个事件,我也有一个二维张量,比如 sample_concatenated_embedding= tensor( [[ 0.6993, -0.1427, -0.1532, ...,

我的数据框看起来像

   INCIDENT_NUMBER                      
0  INC000030884498
1  INC000029956111
2  INC000029555353
3  INC000029555338
对于上述四个事件,我也有一个二维张量,比如

  sample_concatenated_embedding=
  tensor(                    
  [[ 0.6993, -0.1427, -0.1532,  ...,  0.8386,  0.5151,  0.8906],
  [ 0.7382, -0.8497,  0.1363,  ...,  0.8054,  0.5432,  0.9082],
  [ 0.0835, -0.2431, -0.0815,  ...,  0.8025,  0.5217,  0.9041],
  [-0.0346, -0.2396, -0.5831,  ...,  0.7591,  0.6138,  0.9649]],
  grad_fn=<ViewBackward>)
如果张量是级数,我可以简单地使用下面的命令

 my_dataframe['embedding'] = sample_concatenated_embedding
我可以使用for循环,轻松地插入到数据帧中,就像

 empty_dataframe = pd.DataFrame(columns=['incident','embedding'])

 for item in range(0,4):
     INCIDENT_NUMBER = my_dataframe['INCIDENT_NUMBER'].iloc[item]
     temp_df = pd.DataFrame([[INCIDENT_NUMBER, sample_concatenated_embedding[item]], columns=['incident','embedding']) 
     frames = [empty_dataframe, temp_df]
     empty_dataframe = pd.concat(frames)

但对于循环来说,这将是低效的。如果
INCIDENT\u NUMBER
的值索引与
sample\u concatenated\u embedding
的值索引匹配,是否有较短的方法实现最终目标。您只需将
sample\u concatenated\u embedding
转换为list,然后将其分配给新列,如

将熊猫作为pd导入
df=pd.DataFrame({'INCIDENT_NUMBER':['INC000030884498','INC00002956111','INC000029555353','INC000029555338']))
数据=[[0.6993,-0.1427,-0.1532,0.8386,0.5151,0.8906],
[ 0.7382, -0.8497,  0.1363, 0.8054,  0.5432,  0.9082],
[ 0.0835, -0.2431, -0.0815, 0.8025,  0.5217,  0.9041],
[-0.0346, -0.2396, -0.5831, 0.7591,  0.6138,  0.9649]]
df['embedding']=数据
rename(列={'INCIDENT_NUMBER':'INCIDENT'},inplace=True)
 empty_dataframe = pd.DataFrame(columns=['incident','embedding'])

 for item in range(0,4):
     INCIDENT_NUMBER = my_dataframe['INCIDENT_NUMBER'].iloc[item]
     temp_df = pd.DataFrame([[INCIDENT_NUMBER, sample_concatenated_embedding[item]], columns=['incident','embedding']) 
     frames = [empty_dataframe, temp_df]
     empty_dataframe = pd.concat(frames)
print(df)

          incident                                            embedding
0  INC000030884498   [0.6993, -0.1427, -0.1532, 0.8386, 0.5151, 0.8906]
1  INC000029956111    [0.7382, -0.8497, 0.1363, 0.8054, 0.5432, 0.9082]
2  INC000029555353   [0.0835, -0.2431, -0.0815, 0.8025, 0.5217, 0.9041]
3  INC000029555338  [-0.0346, -0.2396, -0.5831, 0.7591, 0.6138, 0.9649]