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]